C++: Test field conflation with array in struct

This commit is contained in:
Jonas Jensen
2020-05-14 16:29:39 +02:00
parent 23532ae49a
commit a380dc113f
5 changed files with 78 additions and 1 deletions

View File

@@ -96,4 +96,24 @@ void test_outparams() {
char *p2 = nullptr;
flow_to_outparam(&p2, getenv("VAR"));
sink(p2); // tainted
}
}
void *memcpy(void *dst, void *src, int size);
struct ContainsArray {
int arr[16];
int x;
};
void taint_array(ContainsArray *ca, int offset) {
int tainted = getenv("VAR")[0];
memcpy(ca->arr + offset, &tainted, sizeof(int));
}
void test_conflated_fields3(int arbitrary) {
ContainsArray ca;
ca.x = 0;
taint_array(&ca, arbitrary);
sink(ca.x); // not tainted [FALSE POSITIVE]
}