mirror of
https://github.com/github/codeql.git
synced 2026-04-28 02:05:14 +02:00
C++: Add indirect test models.
This commit is contained in:
@@ -11,7 +11,7 @@ private class TestSources extends SourceModelCsv {
|
||||
";;false;remoteMadSource;;;ReturnValue;remote",
|
||||
";;false;localMadSourceVoid;;;ReturnValue;local",
|
||||
";;false;localMadSourceHasBody;;;ReturnValue;local",
|
||||
// TODO: remoteMadSourceIndirect
|
||||
";;false;remoteMadSourceIndirect;;;*ReturnValue;remote",
|
||||
";;false;remoteMadSourceArg0;;;Argument[0];remote",
|
||||
";;false;remoteMadSourceArg1;;;Argument[1];remote", ";;false;remoteMadSourceVar;;;;remote",
|
||||
";;false;remoteMadSourceParam0;;;Parameter[0];remote",
|
||||
@@ -39,7 +39,7 @@ private class TestSinks extends SinkModelCsv {
|
||||
";;false;madSinkArg1;;;Argument[1];test-sink",
|
||||
";;false;madSinkArg01;;;Argument[0..1];test-sink",
|
||||
";;false;madSinkArg02;;;Argument[0,2];test-sink",
|
||||
// TODO: madSinkIndirectArg0
|
||||
";;false;madSinkIndirectArg0;;;*Argument[0];test-sink",
|
||||
";;false;madSinkVar;;;;test-sink", ";;false;madSinkParam0;;;Parameter[0];test-sink",
|
||||
";MyClass;true;memberMadSinkArg0;;;Argument[0];test-sink",
|
||||
";MyClass;true;memberMadSinkVar;;;;test-sink",
|
||||
@@ -60,11 +60,11 @@ private class TestSummaries extends SummaryModelCsv {
|
||||
[
|
||||
";;false;madArg0ToReturn;;;Argument[0];ReturnValue;taint",
|
||||
";;false;madArg0ToReturnValueFlow;;;Argument[0];ReturnValue;value",
|
||||
// TODO: madArg0IndirectToReturn
|
||||
";;false;madArg0IndirectToReturn;;;*Argument[0];ReturnValue;taint",
|
||||
";;false;madArg0ToArg1;;;Argument[0];Argument[1];taint",
|
||||
// TODO: madArg0IndirectToArg1
|
||||
";;false;madArg0IndirectToArg1Indirect;;;*Argument[0];*Argument[1];taint",
|
||||
";;false;madArg0FieldToReturn;;;Argument[0].value;ReturnValue;taint",
|
||||
// TODO: madArg0IndirectFieldToReturn
|
||||
";;false;madArg0IndirectFieldToReturn;;;*Argument[0].value;ReturnValue;taint",
|
||||
";;false;madArg0ToReturnField;;;Argument[0];ReturnValue.value;taint",
|
||||
";MyClass;true;madArg0ToSelf;;;Argument[0];Argument[-1];taint",
|
||||
";MyClass;true;madSelfToReturn;;;Argument[-1];ReturnValue;taint",
|
||||
|
||||
@@ -10,7 +10,7 @@ int remoteMadSource(); // $ interpretElement
|
||||
int notASource();
|
||||
int localMadSourceVoid(void); // $ interpretElement
|
||||
int localMadSourceHasBody() { return 0; } // $ interpretElement
|
||||
int *remoteMadSourceIndirect(); // $ MISSING: interpretElement
|
||||
int *remoteMadSourceIndirect(); // $ interpretElement
|
||||
void remoteMadSourceArg0(int *x, int *y); // $ interpretElement
|
||||
void remoteMadSourceArg1(int &x, int &y); // $ interpretElement
|
||||
int remoteMadSourceVar; // $ interpretElement
|
||||
@@ -73,7 +73,7 @@ void notASink(int x);
|
||||
void madSinkArg1(int x, int y); // $ interpretElement
|
||||
void madSinkArg01(int x, int y, int z); // $ interpretElement
|
||||
void madSinkArg02(int x, int y, int z); // $ interpretElement
|
||||
void madSinkIndirectArg0(int *x); // $ MISSING: interpretElement
|
||||
void madSinkIndirectArg0(int *x); // $ interpretElement
|
||||
int madSinkVar; // $ interpretElement
|
||||
|
||||
void test_sinks() {
|
||||
@@ -115,12 +115,12 @@ struct MyContainer {
|
||||
int madArg0ToReturn(int x); // $ interpretElement
|
||||
int notASummary(int x);
|
||||
int madArg0ToReturnValueFlow(int x); // $ interpretElement
|
||||
int madArg0IndirectToReturn(int *x); // $ MISSING: interpretElement
|
||||
int madArg0IndirectToReturn(int *x); // $ interpretElement
|
||||
void madArg0ToArg1(int x, int &y); // $ interpretElement
|
||||
void madArg0IndirectToArg1(const int *x, int *y); // $ MISSING: interpretElement
|
||||
void madArg0IndirectToArg1Indirect(const int *x, int *y); // $ interpretElement
|
||||
|
||||
int madArg0FieldToReturn(MyContainer mc); // $ interpretElement
|
||||
int madArg0IndirectFieldToReturn(MyContainer *mc); // $ MISSING: interpretElement
|
||||
int madArg0IndirectFieldToReturn(MyContainer *mc); // $ interpretElement
|
||||
MyContainer madArg0ToReturnField(int x); // $ interpretElement
|
||||
|
||||
void test_summaries() {
|
||||
@@ -140,7 +140,7 @@ void test_summaries() {
|
||||
madArg0ToArg1(source(), b);
|
||||
sink(b); // $ MISSING: ir
|
||||
|
||||
madArg0IndirectToArg1(&a, &c);
|
||||
madArg0IndirectToArg1Indirect(&a, &c);
|
||||
sink(c); // $ MISSING: ir
|
||||
|
||||
MyContainer mc1, mc2;
|
||||
|
||||
Reference in New Issue
Block a user