This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: Properly check local symbol on error
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: binutils at sources dot redhat dot com
- Date: Fri, 19 Jun 2009 17:45:34 -0700
- Subject: PATCH: Properly check local symbol on error
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
We should check h not h->root.root.string for non-IFUNC local symbol. I
checked in this patch to fix it.
H.J.
---
2009-06-19 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_check_relocs): Properly check local
symbol on error.
* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
Index: elf64-x86-64.c
===================================================================
--- elf64-x86-64.c (revision 6206)
+++ elf64-x86-64.c (working copy)
@@ -1232,7 +1232,7 @@ elf64_x86_64_check_relocs (bfd *abfd, st
case R_X86_64_TPOFF32:
if (info->shared)
{
- if (h->root.root.string)
+ if (h)
name = h->root.root.string;
else
name = bfd_elf_sym_name (abfd, symtab_hdr, isym,
@@ -1327,7 +1327,7 @@ elf64_x86_64_check_relocs (bfd *abfd, st
tls_type |= old_tls_type;
else
{
- if (h->root.root.string)
+ if (h)
name = h->root.root.string;
else
name = bfd_elf_sym_name (abfd, symtab_hdr,
@@ -1402,7 +1402,7 @@ elf64_x86_64_check_relocs (bfd *abfd, st
&& (sec->flags & SEC_ALLOC) != 0
&& (sec->flags & SEC_READONLY) != 0)
{
- if (h->root.root.string)
+ if (h)
name = h->root.root.string;
else
name = bfd_elf_sym_name (abfd, symtab_hdr, isym, NULL);
Index: elf32-i386.c
===================================================================
--- elf32-i386.c (revision 6206)
+++ elf32-i386.c (working copy)
@@ -1538,7 +1538,7 @@ elf_i386_check_relocs (bfd *abfd,
tls_type |= old_tls_type;
else
{
- if (h->root.root.string)
+ if (h)
name = h->root.root.string;
else
name = bfd_elf_sym_name (abfd, symtab_hdr, isym,