char *sp (/*@untainted@*/ char *s1, /*@untainted@*/ char *s2, /*@tainted@*/ char *s3)
{
  char *s;
  s = (char *) malloc (sizeof (*s) * 100);
  assert (s != NULL);

  sprintf (s, "%s %d %s %d", s1, 3, s2, 3);
  (void) system (s); /* okay */

  sprintf (s, "%s %d %s %d", s1, 3, s3, 3);
  (void) system (s); /* error */

  sprintf (s, "%s %d %s %d %s %s %s", s1, 3, s2, 3, s2, s3, s2);
  (void) system (s); /* error */

  return s; /* error */
}
  


syntax highlighted by Code2HTML, v. 0.9.1