C++: Add indirect test models.

This commit is contained in:
Geoffrey White
2024-03-13 11:21:51 +00:00
parent cbacd51337
commit 9aad43f649
2 changed files with 11 additions and 11 deletions

View File

@@ -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",

View File

@@ -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;