summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/taint-generic.c
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2011-11-28 20:43:40 +0000
committerAnna Zaks <ganna@apple.com>2011-11-28 20:43:40 +0000
commitff029b695397697090a054bc0f58607a03212be3 (patch)
treeb9847415418fcce27f7bb707d9f50b70fe3bbe6a /clang/test/Analysis/taint-generic.c
parent951d205aec2f318c09225bc571386326234c953d (diff)
downloadbcm5719-llvm-ff029b695397697090a054bc0f58607a03212be3.tar.gz
bcm5719-llvm-ff029b695397697090a054bc0f58607a03212be3.zip
[analyzer] Add more simple taint tests.
llvm-svn: 145275
Diffstat (limited to 'clang/test/Analysis/taint-generic.c')
-rw-r--r--clang/test/Analysis/taint-generic.c19
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 }}
+}
OpenPOWER on IntegriCloud