timeout in mmo_get_symbols
authorAlan Modra <amodra@gmail.com>
Wed, 17 Aug 2022 06:42:26 +0000 (16:12 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 17 Aug 2022 07:05:57 +0000 (16:35 +0930)
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

index 30af28c8bdc250e3c6f64dbac9b85134a58ac4a2..80b5cb6b4ca26fed4f0ed9f84c34337c9637e69c 100644 (file)
--- 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];