diff options
Diffstat (limited to 'clang/test/Analysis/taint-generic.c')
| -rw-r--r-- | clang/test/Analysis/taint-generic.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/clang/test/Analysis/taint-generic.c b/clang/test/Analysis/taint-generic.c index 54229937d14..eeec8869b02 100644 --- a/clang/test/Analysis/taint-generic.c +++ b/clang/test/Analysis/taint-generic.c @@ -6,7 +6,7 @@ int getchar(void); #define BUFSIZE 10 int Buffer[BUFSIZE]; -void bufferFoo1(void) +void bufferScanfDirect(void) { int n; scanf("%d", &n); @@ -23,11 +23,26 @@ void bufferScanfArithmetic1(int x) { void bufferScanfArithmetic2(int x) { int n; scanf("%d", &n); - int m = (n + 3) * x; + int m = 100 / (n + 3) * x; Buffer[m] = 1; // expected-warning {{Out of bound memory access }} } +void bufferScanfAssignment(int x) { + int n; + scanf("%d", &n); + int m; + if (x > 0) { + m = n; + Buffer[m] = 1; // expected-warning {{Out of bound memory access }} + } +} + void scanfArg() { int t; scanf("%d", t); // expected-warning {{Pointer argument is expected}} } + +void bufferGetchar(int x) { + int m = getchar(); + Buffer[m] = 1; //expected-warning {{Out of bound memory access }} +} |

