Browse Source

Ignore section symbols without a BFD section

bfd/

	PR binutils/14493
	* elf.c (ignore_section_sym): Also ignore section symbols without
	a BFD section.

binutils/

	PR binutils/14493
	* readelf.c (get_symbol_index_type): Check bad section index.
gdb_7_6-branch
H.J. Lu 14 years ago
parent
commit
c6d8cab4ac
  1. 6
      bfd/ChangeLog
  2. 14
      bfd/elf.c
  3. 5
      binutils/ChangeLog
  4. 2
      binutils/readelf.c

6
bfd/ChangeLog

@ -1,3 +1,9 @@
2012-09-04 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/14493
* elf.c (ignore_section_sym): Also ignore section symbols without
a BFD section.
2012-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* elf32-s390.c (elf_s390_relocate_section): Handle PLTOFF for

14
bfd/elf.c

@ -3264,13 +3264,21 @@ sym_is_global (bfd *abfd, asymbol *sym)
}
/* Don't output section symbols for sections that are not going to be
output, or that are duplicates. */
output, that are duplicates or there is no BFD section. */
static bfd_boolean
ignore_section_sym (bfd *abfd, asymbol *sym)
{
return ((sym->flags & BSF_SECTION_SYM) != 0
&& !(sym->section->owner == abfd
elf_symbol_type *type_ptr;
if ((sym->flags & BSF_SECTION_SYM) == 0)
return FALSE;
type_ptr = elf_symbol_from (abfd, sym);
return ((type_ptr != NULL
&& type_ptr->internal_elf_sym.st_shndx != 0
&& bfd_is_abs_section (sym->section))
|| !(sym->section->owner == abfd
|| (sym->section->output_section->owner == abfd
&& sym->section->output_offset == 0)
|| bfd_is_abs_section (sym->section)));

5
binutils/ChangeLog

@ -1,3 +1,8 @@
2012-09-04 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/14493
* readelf.c (get_symbol_index_type): Check bad section index.
2012-08-24 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* readelf.c (arm_attr_tag_CPU_arch): Update for ARMv8.

2
binutils/readelf.c

@ -8974,6 +8974,8 @@ get_symbol_index_type (unsigned int type)
sprintf (buff, "OS [0x%04x]", type & 0xffff);
else if (type >= SHN_LORESERVE)
sprintf (buff, "RSV[0x%04x]", type & 0xffff);
else if (type >= elf_header.e_shnum)
sprintf (buff, "bad section index[%3d]", type);
else
sprintf (buff, "%3d", type);
break;

Loading…
Cancel
Save