Another PE SEC_HAS_CONTENTS test

Message ID Y/1FKI3FT2qt6LnH@squeak.grove.modra.org
State Unresolved
Headers
Series Another PE SEC_HAS_CONTENTS test |

Checks

Context Check Description
snail/binutils-gdb-check warning Git am fail log

Commit Message

Alan Modra Feb. 28, 2023, 12:04 a.m. UTC
  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.
  

Patch

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 =