From 31e43bfffbc585a59d07f21f191317a714476e38 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 17 Aug 2022 16:12:26 +0930 Subject: [PATCH] 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. --- bfd/mmo.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) 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]; -- 2.30.2