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)9void 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