From: Mark Wielaard Date: Thu, 12 Sep 2013 14:49:25 +0000 (+0200) Subject: libdwfl: Fix memory leak in cu.c on bad DWARF. X-Git-Tag: elfutils-0.157~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ead7d1916789f1576550502d4bcf2a0f1d247463;p=thirdparty%2Felfutils.git libdwfl: Fix memory leak in cu.c on bad DWARF. If libdw dwarf_offdie fails free cu structure. Signed-off-by: Mark Wielaard --- diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index d325475ad..4d119fd92 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,7 @@ +2013-09-12 Mark Wielaard + + * cu.c (intern_cu): If dwarf_offdie fails free cu. + 2013-09-12 Mark Wielaard * linux-proc-maps.c (proc_maps_report): Don't fclose FILE in diff --git a/libdwfl/cu.c b/libdwfl/cu.c index 18fc20604..40b0201cd 100644 --- a/libdwfl/cu.c +++ b/libdwfl/cu.c @@ -204,7 +204,10 @@ intern_cu (Dwfl_Module *mod, Dwarf_Off cuoff, struct dwfl_cu **result) /* XXX use non-searching lookup */ Dwarf_Die *die = INTUSE(dwarf_offdie) (mod->dw, cuoff, &cu->die); if (die == NULL) - return DWFL_E_LIBDW; + { + free (cu); + return DWFL_E_LIBDW; + } assert (die == &cu->die); struct dwfl_cu **newvec = realloc (mod->cu, ((mod->ncu + 1)