free_section bugfix

This commit is contained in:
grischka 2008-05-11 00:11:52 +02:00
parent f9bf48d643
commit 1300cec38c

4
tcc.c
View File

@ -1284,9 +1284,9 @@ Section *new_section(TCCState *s1, const char *name, int sh_type, int sh_flags)
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);
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);
tcc_free(s->data);
tcc_free(s);