Fix segfault when creating a dso with discarded .dynsym section.
authorMatthew Fortune <matthew.fortune@imgtec.com>
Wed, 5 Nov 2014 10:56:59 +0000 (10:56 +0000)
committerMatthew Fortune <matthew.fortune@imgtec.com>
Wed, 5 Nov 2014 10:56:59 +0000 (10:56 +0000)
bfd/

* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Fix segfault
when creating a dso with discarded dynsym section.

bfd/ChangeLog
bfd/elfxx-mips.c

index 8df2fd7a117e9fb0a0c76aabd8e23bb3c2972995..721db9b85ee15ac56728c10d58e2a04bbe432134 100644 (file)
@@ -1,3 +1,8 @@
+2014-11-05  James Cowgill  <james.cowgill@imgtec.com>
+
+       * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Fix segfault
+       when creating a dso with discarded dynsym section.
+
 2014-11-05  Matthew Fortune  <matthew.fortune@imgtec.com>
 
        * elfxx-mips.c (update_mips_abiflags_isa): Add E_MIPS_ARCH_32R6
index c599366396a91e309a3d80eec291a33038562f06..a88d17320df5bc86faa9393a2985bae31732cd00 100644 (file)
@@ -11457,9 +11457,11 @@ _bfd_mips_elf_finish_dynamic_sections (bfd *output_bfd,
              name = ".dynsym";
              elemsize = MIPS_ELF_SYM_SIZE (output_bfd);
              s = bfd_get_section_by_name (output_bfd, name);
-             BFD_ASSERT (s != NULL);
 
-             dyn.d_un.d_val = s->size / elemsize;
+             if (s != NULL)
+               dyn.d_un.d_val = s->size / elemsize;
+             else
+               dyn.d_un.d_val = 0;
              break;
 
            case DT_MIPS_HIPAGENO: