bfd: Don't check non-thin archive member file size
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 24 Dec 2021 23:42:43 +0000 (15:42 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 28 Dec 2021 13:27:29 +0000 (05:27 -0800)
There is no need to check member file size for thin archive member.

* bfdio.c (bfd_bread): Don't check non-thin archive member file
size.

bfd/bfdio.c

index 463b3879c52ba6beac47190f8eb0810b0c330e65..9aa15c1ffa479392008ba8fc7e4a8d9dcb569d64 100644 (file)
@@ -231,9 +231,11 @@ bfd_bread (void *ptr, bfd_size_type size, bfd *abfd)
     }
   offset += abfd->origin;
 
-  /* If this is an archive element, don't read past the end of
+  /* If this is a non-thin archive element, don't read past the end of
      this element.  */
-  if (element_bfd->arelt_data != NULL)
+  if (element_bfd->arelt_data != NULL
+      && element_bfd->my_archive != NULL
+      && !bfd_is_thin_archive (element_bfd->my_archive))
     {
       bfd_size_type maxbytes = arelt_size (element_bfd);