blob: d11cc03b36f0dbe15480f77a6c83a68f997fa869 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include <stdlib.h>
/* Reduced from Juliet 1.3's CWE415_Double_Free__malloc_free_char_67a.c
goodG2B which was showing a false leak report in a non-LTO build. */
struct s1
{
char * structFirst;
};
void external_fn_1(struct s1 myStruct);
void test_1()
{
char * data;
struct s1 myStruct;
data = (char *)malloc(100*sizeof(char));
if (data == NULL)
exit(-1);
myStruct.structFirst = data;
external_fn_1(myStruct);
} /* { dg-bogus "leak of 'data'" } */
/* As above, but with padding before the field. */
struct s2
{
void *padding;
char *ptr;
};
void external_fn_2(struct s2 myStruct);
void test_2()
{
char * data;
struct s2 myStruct;
data = (char *)malloc(100*sizeof(char));
if (data == NULL)
exit(-1);
myStruct.padding = NULL;
myStruct.ptr = data;
external_fn_2(myStruct);
} /* { dg-bogus "leak of 'data'" } */
|