diff options
author | Mark Wielaard <mjw@redhat.com> | 2016-04-14 21:53:33 +0200 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2016-04-14 21:53:33 +0200 |
commit | f46ba1e7211f4ae884f234a37e16bc5feafa2b1c (patch) | |
tree | 6b34a9e001a115b4739504d41bf5f3a69819e987 | |
parent | 2eedce110ac090c55aed4756152b6deb16229cdd (diff) | |
download | elfutils-f46ba1e7211f4ae884f234a37e16bc5feafa2b1c.tar.gz |
libdwfl: Fix memory leak in dwfl_module_getsrc_file on invalid DWARF.
If we allocated the match results array ourselves, then free it when
we detect invalid DWARF and return an error.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
-rw-r--r-- | libdwfl/ChangeLog | 5 | ||||
-rw-r--r-- | libdwfl/dwfl_module_getsrc_file.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 60ed7009..bdfc92f1 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,5 +1,10 @@ 2016-04-14 Mark Wielaard <mjw@redhat.com> + * dwfl_module_getsrc_file.c (dwfl_module_getsrc_file): Free match + on invalid DWARF if we allocated it. + +2016-04-14 Mark Wielaard <mjw@redhat.com> + * linux-proc-maps.c (proc_maps_report): Free last_file on bad file mapping. diff --git a/libdwfl/dwfl_module_getsrc_file.c b/libdwfl/dwfl_module_getsrc_file.c index 21a59159..4eaaeaff 100644 --- a/libdwfl/dwfl_module_getsrc_file.c +++ b/libdwfl/dwfl_module_getsrc_file.c @@ -87,6 +87,8 @@ dwfl_module_getsrc_file (Dwfl_Module *mod, if (unlikely (line->file >= line->files->nfiles)) { + if (*nsrcs == 0) + free (match); __libdwfl_seterrno (DWFL_E (LIBDW, DWARF_E_INVALID_DWARF)); return -1; } |