1*1f5207b7SJohn Levon int a[] = {1, 2, 3, 4};
2*1f5207b7SJohn Levon char *b = "abc";
3*1f5207b7SJohn Levon char c[4];
4*1f5207b7SJohn Levon char d[4] = "";
5*1f5207b7SJohn Levon 
6*1f5207b7SJohn Levon int x;
options_write(void)7*1f5207b7SJohn Levon static int options_write(void)
8*1f5207b7SJohn Levon {
9*1f5207b7SJohn Levon 	int i;
10*1f5207b7SJohn Levon 	char *str = b;
11*1f5207b7SJohn Levon 	char *str2 = "123";
12*1f5207b7SJohn Levon 	char *str3;
13*1f5207b7SJohn Levon 	char *str4;
14*1f5207b7SJohn Levon 	char *str5;
15*1f5207b7SJohn Levon 	unsigned int j = 4;
16*1f5207b7SJohn Levon 
17*1f5207b7SJohn Levon 	str3 = str2;
18*1f5207b7SJohn Levon 	str4 = str;
19*1f5207b7SJohn Levon 	if (x)
20*1f5207b7SJohn Levon 		str5 = "asdf";
21*1f5207b7SJohn Levon 	else
22*1f5207b7SJohn Levon 		str5 = "aa";
23*1f5207b7SJohn Levon 
24*1f5207b7SJohn Levon 	for (i = 0; i < 4 && frob(); i++)
25*1f5207b7SJohn Levon 		;
26*1f5207b7SJohn Levon 	a[i] = 42;
27*1f5207b7SJohn Levon 	b[i] = '\0';
28*1f5207b7SJohn Levon 	c[i] = '\0';
29*1f5207b7SJohn Levon 	str[j] = '\0';
30*1f5207b7SJohn Levon 	str2[j] = '\0';
31*1f5207b7SJohn Levon 	str3[j] = '\0';
32*1f5207b7SJohn Levon 	str4[j] = '\0';
33*1f5207b7SJohn Levon 	str5[j] = '\0';
34*1f5207b7SJohn Levon 	d[j] = '\0';
35*1f5207b7SJohn Levon }
36*1f5207b7SJohn Levon /*
37*1f5207b7SJohn Levon  * check-name: smatch array check
38*1f5207b7SJohn Levon  * check-command: smatch --spammy sm_array_overflow.c
39*1f5207b7SJohn Levon  *
40*1f5207b7SJohn Levon  * check-output-start
41*1f5207b7SJohn Levon sm_array_overflow.c:26 options_write() error: buffer overflow 'a' 4 <= 4
42*1f5207b7SJohn Levon sm_array_overflow.c:27 options_write() error: buffer overflow 'b' 4 <= 4
43*1f5207b7SJohn Levon sm_array_overflow.c:28 options_write() error: buffer overflow 'c' 4 <= 4
44*1f5207b7SJohn Levon sm_array_overflow.c:29 options_write() error: buffer overflow 'str' 4 <= 4
45*1f5207b7SJohn Levon sm_array_overflow.c:30 options_write() error: buffer overflow 'str2' 4 <= 4
46*1f5207b7SJohn Levon sm_array_overflow.c:31 options_write() error: buffer overflow 'str3' 4 <= 4
47*1f5207b7SJohn Levon sm_array_overflow.c:32 options_write() error: buffer overflow 'str4' 4 <= 4
48*1f5207b7SJohn Levon sm_array_overflow.c:34 options_write() error: buffer overflow 'd' 4 <= 4
49*1f5207b7SJohn Levon  * check-output-end
50*1f5207b7SJohn Levon  */
51