unix_malloc_example.c revision 1.1.1.1
1
2void test() {
3  int *p = malloc(1);
4  free(p);
5  free(p); // warn: attempt to free released memory
6}
7
8void test() {
9  int *p = malloc(sizeof(int));
10  free(p);
11  *p = 1; // warn: use after free
12}
13
14void test() {
15  int *p = malloc(1);
16  if (p)
17    return; // warn: memory is never released
18}
19
20void test() {
21  int a[] = { 1 };
22  free(a); // warn: argument is not allocated by malloc
23}
24
25void test() {
26  int *p = malloc(sizeof(char));
27  p = p - 1;
28  free(p); // warn: argument to free() is offset by -4 bytes
29}
30
31