free_section bugfix
This commit is contained in:
4
tcc.c
4
tcc.c
@ -1284,9 +1284,9 @@ Section *new_section(TCCState *s1, const char *name, int sh_type, int sh_flags)
|
|||||||
|
|
||||||
static void free_section(Section *s)
|
static void free_section(Section *s)
|
||||||
{
|
{
|
||||||
if (s->link && 0 == s->link->sh_num)
|
if (s->link && (s->link->sh_flags & SHF_PRIVATE))
|
||||||
free_section(s->link);
|
free_section(s->link);
|
||||||
if (s->hash && 0 == s->hash->sh_num)
|
if (s->hash && (s->link->sh_flags & SHF_PRIVATE))
|
||||||
s->hash->link = NULL, free_section(s->hash);
|
s->hash->link = NULL, free_section(s->hash);
|
||||||
tcc_free(s->data);
|
tcc_free(s->data);
|
||||||
tcc_free(s);
|
tcc_free(s);
|
||||||
|
|||||||
Reference in New Issue
Block a user