1 extern char *mtainted (char *s);
2 
f(char * s,char * us)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 
test(char * s)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 }
22