File: taintedimplicit.c

package info (click to toggle)
splint 3.1.2.dfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 12,908 kB
  • ctags: 15,816
  • sloc: ansic: 150,306; yacc: 3,463; sh: 3,426; makefile: 2,218; lex: 412
file content (18 lines) | stat: -rw-r--r-- 377 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
char *taintme (char *s)
     /*@ensures result:taintedness = s:taintedness@*/
{
  char *res = (char *) malloc (sizeof (*res) * strlen (s));
  assert (res != NULL);
  strcpy (res, s);
  return res;
}

void safecall (/*@untainted@*/ char *s)
{
  (void) system (taintme (s)); /* okay */
}

void dangerouscall (/*@tainted@*/ char *s)
{
  (void) system (taintme (s)); /* error */
}