]>
Commit | Line | Data |
---|---|---|
98ed3b22 | 1 | extern char *mtainted (char *s); |
2 | ||
3 | /*@untainted@*/ char *f (/*@tainted@*/ char *s, /*@untainted@*/ char *us) | |
4 | { | |
5 | char *x = f (us, s); /* Error: tainted as untainted */ | |
6 | return f (x, us); | |
7 | } | |
8 | ||
9 | void test (/*@tainted@*/ char *s) | |
10 | { | |
11 | char *t = malloc (sizeof (char) * strlen (s)); | |
12 | (void) system (s); /* error */ | |
13 | ||
14 | assert (t != NULL); | |
15 | strcpy (t, s); | |
16 | /* t is tainted too */ | |
17 | (void) system (t); /* error */ | |
18 | ||
19 | t = mtainted (s); /* default return is tainted! */ | |
20 | (void) system (t); /* error */ | |
21 | } |