Another PE SEC_HAS_CONTENTS test

Alan Modra amodra@gmail.com
Tue Feb 28 00:04:56 GMT 2023


I'd skipped this one before, thinking "obfd, that's the linker output
bfd so no need to test".  Wrong, this is objcopy output.

	* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Test
	SEC_HAS_CONTENTS before reading section.

diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index 43f3a83743c..d59a97f0d11 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -3041,7 +3041,8 @@ _bfd_XX_bfd_copy_private_bfd_data_common (bfd * ibfd, bfd * obfd)
 	      return false;
 	    }
 
-	  if (bfd_malloc_and_get_section (obfd, section, &data))
+	  if ((section->flags & SEC_HAS_CONTENTS) != 0
+	      && bfd_malloc_and_get_section (obfd, section, &data))
 	    {
 	      unsigned int i;
 	      struct external_IMAGE_DEBUG_DIRECTORY *dd =

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list