1*1f5207b7SJohn Levon int strlen(char *str); 2*1f5207b7SJohn Levon int strcpy(char *str); 3*1f5207b7SJohn Levon func(char * input)4*1f5207b7SJohn Levonvoid func (char *input) 5*1f5207b7SJohn Levon { 6*1f5207b7SJohn Levon int input_len; 7*1f5207b7SJohn Levon char buf[4]; 8*1f5207b7SJohn Levon 9*1f5207b7SJohn Levon input_len = strlen(input); 10*1f5207b7SJohn Levon if (input_len <= 5) { 11*1f5207b7SJohn Levon strcpy(buf, input); 12*1f5207b7SJohn Levon } 13*1f5207b7SJohn Levon if (input_len <= 3) { 14*1f5207b7SJohn Levon strcpy(buf, input); 15*1f5207b7SJohn Levon } 16*1f5207b7SJohn Levon } 17*1f5207b7SJohn Levon /* 18*1f5207b7SJohn Levon * check-name: Smatch strlen test 19*1f5207b7SJohn Levon * check-command: smatch sm_strlen.c 20*1f5207b7SJohn Levon * 21*1f5207b7SJohn Levon * check-output-start 22*1f5207b7SJohn Levon sm_strlen.c:11 func() error: strcpy() 'input' too large for 'buf' (6 vs 4) 23*1f5207b7SJohn Levon * check-output-end 24*1f5207b7SJohn Levon */ 25