asan: Null-dereference in _bfd_xcoff_copy_private_bfd_data

Message ID Yc/j7am8+ap/RBGF@squeak.grove.modra.org
State New
Headers show
Series
  • asan: Null-dereference in _bfd_xcoff_copy_private_bfd_data
Related show

Commit Message

H.J. Lu via Binutils Jan. 1, 2022, 5:17 a.m.
sec->output_section will be NULL when objcopy removes sections.

	* coff-rs6000.c (_bfd_xcoff_copy_private_bfd_data): Protect against
	objcopy removing sections.


-- 
Alan Modra
Australia Development Lab, IBM

Patch

diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 1cc2162e7d8..20b607403e4 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -386,7 +386,7 @@  _bfd_xcoff_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
   else
     {
       sec = coff_section_from_bfd_index (ibfd, ix->sntoc);
-      if (sec == NULL)
+      if (sec == NULL || sec->output_section == NULL)
 	ox->sntoc = 0;
       else
 	ox->sntoc = sec->output_section->target_index;
@@ -396,7 +396,7 @@  _bfd_xcoff_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
   else
     {
       sec = coff_section_from_bfd_index (ibfd, ix->snentry);
-      if (sec == NULL)
+      if (sec == NULL || sec->output_section == NULL)
 	ox->snentry = 0;
       else
 	ox->snentry = sec->output_section->target_index;