File: constannot.c

package info (click to toggle)
splint 3.1.2.dfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 14,732 kB
  • ctags: 16,317
  • sloc: ansic: 150,320; yacc: 3,463; sh: 3,003; makefile: 2,153; lex: 412
file content (22 lines) | stat: -rw-r--r-- 361 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*@constant int MaxLength=20@*/
# define MaxLength 20

void foo (char *str) /*@requires maxSet(str) >= MaxLength@*/ 
{
  str[20] = 'a';
}

void foo2 (char *str) /*@requires maxSet(str) >= (MaxLength - 1)@*/ 
{
  str[20] = 'a'; /* error */
}

void foo3 ()
{
  char buf[MaxLength];

  buf[0] = '\0';

  foo (buf); /* error: off by 1 */
  foo2 (buf); /* okay */
}