backends: aarch64_check_special_symbol check shdr is not NULL before usage.
authorMark Wielaard <mjw@redhat.com>
Tue, 14 Jan 2014 21:14:23 +0000 (22:14 +0100)
committerMark Wielaard <mjw@redhat.com>
Fri, 17 Jan 2014 21:01:54 +0000 (22:01 +0100)
Signed-off-by: Mark Wielaard <mjw@redhat.com>
backends/ChangeLog
backends/aarch64_symbol.c

index 4ea1acd..a742eb2 100644 (file)
@@ -1,3 +1,8 @@
+2014-01-14  Mark Wielaard  <mjw@redhat.com>
+
+       * aarch64_symbol.c (aarch64_check_special_symbol): Check shdr is
+       not NULL before usage.
+
 2014-01-04  Mark Wielaard  <mjw@redhat.com>
 
        * ppc64_symbol.c (ppc64_machine_flag_check): New function.
index e41a7a7..3fdc9cf 100644 (file)
@@ -73,9 +73,12 @@ aarch64_check_special_symbol (Elf *elf, GElf_Ehdr *ehdr, const GElf_Sym *sym,
            {
              GElf_Shdr shdr_mem;
              GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
-             sname = elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name);
-             if (sname != NULL && strcmp (sname, ".got") == 0)
-               return sym->st_value == shdr->sh_addr;
+             if (shdr != NULL)
+               {
+                 sname = elf_strptr (elf, ehdr->e_shstrndx, shdr->sh_name);
+                 if (sname != NULL && strcmp (sname, ".got") == 0)
+                   return sym->st_value == shdr->sh_addr;
+               }
            }
        }
     }