forked from Imagelibrary/binutils-gdb
Fix a illegal memory access fault when parsing a corrupt MIPS option section using readelf.
PR 24243 * readelf.c (process_mips_specific): Check for an options section that is too small to even contain a single option.
This commit is contained in:
@@ -2,6 +2,9 @@
|
||||
|
||||
PR 24242
|
||||
* readelf.c (print_ia64_vms_note): Harden against corrupt notes.
|
||||
PR 24243
|
||||
* readelf.c (process_mips_specific): Check for an options section
|
||||
that is too small to even contain a single option.
|
||||
|
||||
2019-02-20 Alan Modra <amodra@gmail.com>
|
||||
|
||||
|
||||
@@ -16187,6 +16187,12 @@ process_mips_specific (Filedata * filedata)
|
||||
error (_("No MIPS_OPTIONS header found\n"));
|
||||
return FALSE;
|
||||
}
|
||||
/* PR 24243 */
|
||||
if (sect->sh_size < sizeof (* eopt))
|
||||
{
|
||||
error (_("The MIPS options section is too small.\n"));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
eopt = (Elf_External_Options *) get_data (NULL, filedata, options_offset, 1,
|
||||
sect->sh_size, _("options"));
|
||||
|
||||
Reference in New Issue
Block a user