From: Alan Modra Date: Fri, 17 Dec 2021 02:11:28 +0000 (+1030) Subject: asan: buffer overflow in mmo_get_symbols X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=00d44f7f2f513c56a784a6d418833bb3da8a188f;p=binutils-gdb.git asan: buffer overflow in mmo_get_symbols * mmo.c (mmo_get_symbols): Error on symbol name exceeding max length. --- diff --git a/bfd/mmo.c b/bfd/mmo.c index 2ee386662a4..d80cb06f746 100644 --- a/bfd/mmo.c +++ b/bfd/mmo.c @@ -1411,6 +1411,16 @@ SUBSECTION c = c2; } + if (abfd->tdata.mmo_data->symbol_position + >= abfd->tdata.mmo_data->max_symbol_length) + { + _bfd_error_handler + /* xgettext:c-format */ + (_("%pB: symbol name exceeds given max length of %d"), + abfd, abfd->tdata.mmo_data->max_symbol_length); + abfd->tdata.mmo_data->have_error = true; + return false; + } abfd->tdata.mmo_data->lop_stab_symbol[abfd->tdata.mmo_data->symbol_position++] = c; abfd->tdata.mmo_data->lop_stab_symbol[abfd->tdata.mmo_data->symbol_position] = 0;