xref: /illumos-gate/usr/src/tools/smatch/src/validation/sm_memory.c (revision 6e6545bfaed3bab9ce836ee82d1abd8f2edba89a)
1 void *kmalloc(void);
2 void free(void *);
3 
4 struct ture {
5 	int *a;
6 };
7 
8 struct ture *a;
9 struct ture *b;
10 void func (void)
11 {
12 	struct ture *aa;
13 	struct ture *ab;
14 	struct ture *ac;
15 	aa = kmalloc();
16 	ab = kmalloc();
17 	ac = kmalloc();
18 
19 	a = aa;
20 	if (ab) {
21 		free(ab);
22 		return;
23 	}
24 	free(ac);
25 	return;
26 }
27 /*
28  * check-name: leak test #1
29  * check-command: smatch sm_memory.c
30  *
31  * check-output-start
32 sm_memory.c:22 func() warn: possible memory leak of 'ac'
33 sm_memory.c:22 func() error: memory leak of 'ac'
34  * check-output-end
35  */
36