mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-26 13:56:22 +08:00
Nonsense error messages on invalid aout string offset
translate_symbol_table returns false on detecting an out of range name string offset, hooray for error checking, but doesn't set bfd_error or print a useful error. bfd_error therefore contains whatever it had previously, in my testing, bfd_error_system_call. So the error printed depended on errno. PR 22887 * aoutx.h (translate_symbol_table): Print an error message and set bfd_error on finding an invalid name string offset.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2018-02-28 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
PR 22887
|
||||||
|
* aoutx.h (translate_symbol_table): Print an error message and set
|
||||||
|
bfd_error on finding an invalid name string offset.
|
||||||
|
|
||||||
2018-02-27 H.J. Lu <hongjiu.lu@intel.com>
|
2018-02-27 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* config.in: Regenerated.
|
* config.in: Regenerated.
|
||||||
|
@ -1734,7 +1734,13 @@ NAME (aout, translate_symbol_table) (bfd *abfd,
|
|||||||
else if (x < strsize)
|
else if (x < strsize)
|
||||||
in->symbol.name = str + x;
|
in->symbol.name = str + x;
|
||||||
else
|
else
|
||||||
return FALSE;
|
{
|
||||||
|
_bfd_error_handler
|
||||||
|
(_("%pB: invalid string offset %" PRIu64 " >= %" PRIu64),
|
||||||
|
abfd, (uint64_t) x, (uint64_t) strsize);
|
||||||
|
bfd_set_error (bfd_error_bad_value);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
in->symbol.value = GET_SWORD (abfd, ext->e_value);
|
in->symbol.value = GET_SWORD (abfd, ext->e_value);
|
||||||
in->desc = H_GET_16 (abfd, ext->e_desc);
|
in->desc = H_GET_16 (abfd, ext->e_desc);
|
||||||
|
Reference in New Issue
Block a user