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 Levonstatic 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