From: Alan Modra Date: Wed, 17 Aug 2022 06:42:26 +0000 (+0930) Subject: timeout in mmo_get_symbols X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=31e43bfffbc585a59d07f21f191317a714476e38;p=binutils-gdb.git timeout in mmo_get_symbols Fix mmo_get_byte to return a fail-safe value, not just on the first call with a read error but on subsequent calls too. * mmo.c (mmo_get_byte): Return the fail-safe value on every call after a read error. --- diff --git a/bfd/mmo.c b/bfd/mmo.c index 30af28c8bdc..80b5cb6b4ca 100644 --- a/bfd/mmo.c +++ b/bfd/mmo.c @@ -1180,15 +1180,14 @@ mmo_get_byte (bfd *abfd) if (abfd->tdata.mmo_data->byte_no == 0) { - if (! abfd->tdata.mmo_data->have_error + if (!abfd->tdata.mmo_data->have_error && bfd_bread (abfd->tdata.mmo_data->buf, 4, abfd) != 4) - { - abfd->tdata.mmo_data->have_error = true; + abfd->tdata.mmo_data->have_error = true; - /* A value somewhat safe against tripping on some inconsistency - when mopping up after this error. */ - return 128; - } + /* A value somewhat safe against tripping on some inconsistency + when mopping up after this error. */ + if (abfd->tdata.mmo_data->have_error) + return 128; } retval = abfd->tdata.mmo_data->buf[abfd->tdata.mmo_data->byte_no];