PR22741, objcopy segfault on fuzzed COFF object

PR 22741
	* coffgen.c (coff_pointerize_aux): Ensure auxent tagndx is in
	range before converting to a symbol table pointer.
This commit is contained in:
Alan Modra 2018-01-27 08:19:33 +10:30
parent 0d5e2f6abe
commit eb77f6a462
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2018-01-29 Alan Modra <amodra@gmail.com>
PR 22741
* coffgen.c (coff_pointerize_aux): Ensure auxent tagndx is in
range before converting to a symbol table pointer.
2018-01-27 Nick Clifton <nickc@redhat.com>
* po/ru.po: Updated Russian translation.

View File

@ -1555,7 +1555,8 @@ coff_pointerize_aux (bfd *abfd,
}
/* A negative tagndx is meaningless, but the SCO 3.2v4 cc can
generate one, so we must be careful to ignore it. */
if (auxent->u.auxent.x_sym.x_tagndx.l > 0)
if ((unsigned long) auxent->u.auxent.x_sym.x_tagndx.l
< obj_raw_syment_count (abfd))
{
auxent->u.auxent.x_sym.x_tagndx.p =
table_base + auxent->u.auxent.x_sym.x_tagndx.l;