xref: /illumos-gate/usr/src/tools/smatch/src/validation/sm_strlen2.c (revision 1f5207b7604fb44407eb4342aff613f7c4508508)
1 int strlen(char *str);
2 int strcpy(char *str);
3 
func(char * input1,char * input2,char * input3)4 void func (char *input1, char *input2, char *input3)
5 {
6 	char buf1[4];
7 	char buf2[4];
8 	char buf3[4];
9 
10 	if (strlen(input1) > 4)
11 		return;
12 	strcpy(buf1, input1);
13 
14 	if (10 > strlen(input2))
15 		strcpy(buf2, input2);
16 
17 	if (strlen(input3) <= 4)
18 		strcpy(buf3, input3);
19 }
20 /*
21  * check-name: Smatch strlen test #2
22  * check-command: smatch sm_strlen2.c
23  *
24  * check-output-start
25 sm_strlen2.c:12 func() error: strcpy() 'input1' too large for 'buf1' (5 vs 4)
26 sm_strlen2.c:15 func() error: strcpy() 'input2' too large for 'buf2' (10 vs 4)
27 sm_strlen2.c:18 func() error: strcpy() 'input3' too large for 'buf3' (5 vs 4)
28  * check-output-end
29  */
30