]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
libdwfl: Make sure symstrdata->d_buf != NULL in relocate resolve_symbol.
authorMark Wielaard <mjw@redhat.com>
Thu, 18 Dec 2014 08:28:50 +0000 (09:28 +0100)
committerMark Wielaard <mjw@redhat.com>
Thu, 18 Dec 2014 08:28:50 +0000 (09:28 +0100)
Signed-off-by: Mark Wielaard <mjw@redhat.com>
libdwfl/ChangeLog
libdwfl/relocate.c

index 36585765ce92e8939aa67885169a58f9fdddace1..f6db301c321bb97a67e6f016f921594a37888354 100644 (file)
@@ -1,3 +1,7 @@
+2014-12-18  Mark Wielaard  <mjw@redhat.com>
+
+       * relocate.c (resolve_symbol): Make sure symstrdata->d_buf != NULL.
+
 2014-12-13  Mark Wielaard  <mjw@redhat.com>
 
        * dwfl_module_getdwarf.c (find_dynsym): elf_getdata_rawchunk takes
index fd7dbd54a27adae84d0e0fba970d23796878a7bd..e102e1e42f84aee8d6514e4d7d8b1df293a60786 100644 (file)
@@ -206,7 +206,8 @@ resolve_symbol (Dwfl_Module *referer, struct reloc_symtab_cache *symtab,
          symtab->symstrdata = elf_getdata (elf_getscn (symtab->symelf,
                                                        symtab->strtabndx),
                                            NULL);
-         if (unlikely (symtab->symstrdata == NULL))
+         if (unlikely (symtab->symstrdata == NULL
+                       || symtab->symstrdata->d_buf == NULL))
            return DWFL_E_LIBELF;
        }
       if (unlikely (sym->st_name >= symtab->symstrdata->d_size))