1 #include <stdio.h>
2 #include <string.h>
3 #include "check_debug.h"
4 
5 void *kmalloc(int size, int mask);
6 
7 struct foo {
8 	int x, y, z;
9 	int buf[0];
10 };
11 
main(void)12 int main(void)
13 {
14 	struct foo *p;
15 
16 	p = kmalloc(sizeof(*p) + 100, 0);
17 	if (!p)
18 		return -12;
19 	__smatch_buf_size(p->buf);
20 
21 	return 0;
22 }
23 
24 
25 /*
26  * check-name: smatch: overflow check #5
27  * check-command: smatch -p=kernel -I.. sm_array_overflow5.c
28  *
29  * check-output-start
30 sm_array_overflow5.c:19 main() buf size: 'p->buf' 25 elements, 100 bytes
31  * check-output-end
32  */
33