mirror of
https://github.com/github/codeql.git
synced 2026-05-02 20:25:13 +02:00
C++: Add test cases for SAXParser.
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
|
||||
// ---
|
||||
|
||||
class SecurityManager;
|
||||
class InputSource;
|
||||
|
||||
|
||||
|
||||
class AbstractDOMParser {
|
||||
public:
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
// library functions for rule CWE-611
|
||||
// library/common functions for rule CWE-611
|
||||
|
||||
class SecurityManager;
|
||||
class InputSource;
|
||||
|
||||
46
cpp/ql/test/query-tests/Security/CWE/CWE-611/tests2.cpp
Normal file
46
cpp/ql/test/query-tests/Security/CWE/CWE-611/tests2.cpp
Normal file
@@ -0,0 +1,46 @@
|
||||
// test cases for rule CWE-611
|
||||
|
||||
#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) [NOT DETECTED]
|
||||
}
|
||||
|
||||
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) [NOT DETECTED]
|
||||
}
|
||||
|
||||
void test2_4(InputSource &data) {
|
||||
SAXParser *p = new SAXParser();
|
||||
bool v = true;
|
||||
|
||||
p->setDisableDefaultEntityResolution(v);
|
||||
p->parse(data); // GOOD
|
||||
}
|
||||
Reference in New Issue
Block a user