Check the external compression header size

Since the internal compression header size can be bigger than the
external compression header size, we should check the external
compression header size.

	* readelf.c (load_specific_debug_section): Check the external
	compression header size.
This commit is contained in:
H.J. Lu 2016-08-29 08:49:20 -07:00
parent 74437ea28f
commit f53be9779b
2 changed files with 11 additions and 4 deletions

View file

@ -12706,7 +12706,9 @@ load_specific_debug_section (enum dwarf_section_display_enum debug,
Elf_Internal_Chdr chdr;
unsigned int compression_header_size;
if (size < sizeof chdr)
if (size < (is_32bit_elf
? sizeof (Elf32_External_Chdr)
: sizeof (Elf64_External_Chdr)))
{
warn (_("compressed section %s is too small to contain a compression header"),
section->name);