1*1f5207b7SJohn Levon #include <stdio.h> 2*1f5207b7SJohn Levon 3*1f5207b7SJohn Levon #define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0])) 4*1f5207b7SJohn Levon 5*1f5207b7SJohn Levon int a[] = {1, 2, 3, 4}; 6*1f5207b7SJohn Levon main(void)7*1f5207b7SJohn Levonint main(void) 8*1f5207b7SJohn Levon { 9*1f5207b7SJohn Levon int *p; 10*1f5207b7SJohn Levon 11*1f5207b7SJohn Levon for (p = a; p < &a[ARRAY_SIZE(a)]; p++) 12*1f5207b7SJohn Levon printf("%d\n", *p); 13*1f5207b7SJohn Levon p = &a[5]; 14*1f5207b7SJohn Levon return 0; 15*1f5207b7SJohn Levon } 16*1f5207b7SJohn Levon /* 17*1f5207b7SJohn Levon * check-name: smatch array check #3 18*1f5207b7SJohn Levon * check-command: smatch sm_array_overflow3.c 19*1f5207b7SJohn Levon * 20*1f5207b7SJohn Levon * check-output-start 21*1f5207b7SJohn Levon sm_array_overflow3.c:13 main() error: buffer overflow 'a' 4 <= 5 22*1f5207b7SJohn Levon * check-output-end 23*1f5207b7SJohn Levon */ 24