Fix invalid memory access displayiing contents of sections.

PR binutils/21159
	* readelf.c (dump_section_as_strings): Reset the start address if
	no decompression is perfromed.
	(dump_section_as_bytes): Likewise.
This commit is contained in:
Nick Clifton
2017-02-14 15:10:34 +00:00
parent 92134dc19b
commit bc303e5d6c
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2017-02-14 Nick Clifton <nickc@redhat.com>
PR binutils/21159
* readelf.c (dump_section_as_strings): Reset the start address if
no decompression is perfromed.
(dump_section_as_bytes): Likewise.
2017-02-14 Nick Clifton <nickc@redhat.com>
PR binutils/21158

View File

@ -12706,6 +12706,8 @@ dump_section_as_strings (Elf_Internal_Shdr * section, FILE * file)
return;
}
}
else
start = real_start;
}
/* If the section being dumped has relocations against it the user might
@ -12840,14 +12842,19 @@ dump_section_as_bytes (Elf_Internal_Shdr * section,
{
if (uncompress_section_contents (& start, uncompressed_size,
& new_size))
section_size = new_size;
{
section_size = new_size;
}
else
{
error (_("Unable to decompress section %s\n"),
printable_section_name (section));
/* FIXME: Print the section anyway ? */
return;
}
}
else
start = real_start;
}
if (relocate)
@ -13014,6 +13021,7 @@ load_specific_debug_section (enum dwarf_section_display_enum debug,
return 0;
}
}
section->size = size;
}