mirror of
https://github.com/github/codeql.git
synced 2025-12-18 09:43:15 +01:00
60 lines
1.1 KiB
C++
60 lines
1.1 KiB
C++
// test cases for rule CWE-611 (SAXParser)
|
|
|
|
#include "tests.h"
|
|
|
|
// ---
|
|
|
|
class SAXParser
|
|
{
|
|
public:
|
|
SAXParser();
|
|
|
|
void setDisableDefaultEntityResolution(bool); // default is false
|
|
void setSecurityManager(SecurityManager *const manager);
|
|
void parse(const InputSource &data);
|
|
};
|
|
|
|
// ---
|
|
|
|
void test2_1(InputSource &data) {
|
|
SAXParser *p = new SAXParser();
|
|
|
|
p->parse(data); // BAD (parser not correctly configured)
|
|
}
|
|
|
|
void test2_2(InputSource &data) {
|
|
SAXParser *p = new SAXParser();
|
|
|
|
p->setDisableDefaultEntityResolution(true);
|
|
p->parse(data); // GOOD
|
|
}
|
|
|
|
void test2_3(InputSource &data) {
|
|
SAXParser *p = new SAXParser();
|
|
bool v = false;
|
|
|
|
p->setDisableDefaultEntityResolution(v);
|
|
p->parse(data); // BAD (parser not correctly configured)
|
|
}
|
|
|
|
void test2_4(InputSource &data) {
|
|
SAXParser *p = new SAXParser();
|
|
bool v = true;
|
|
|
|
p->setDisableDefaultEntityResolution(v);
|
|
p->parse(data); // GOOD
|
|
}
|
|
|
|
void test2_5(InputSource &data) {
|
|
SAXParser p;
|
|
|
|
p.parse(data); // BAD (parser not correctly configured)
|
|
}
|
|
|
|
void test2_6(InputSource &data) {
|
|
SAXParser p;
|
|
|
|
p.setDisableDefaultEntityResolution(true);
|
|
p.parse(data); // GOOD
|
|
}
|