[RFA] Avoid ubsan complaint in BFD

Tom Tromey tom@tromey.com
Fri Jul 20 15:57:00 GMT 2018


I built gdb with ubsan and ran the test suite.

One complaint was due to bfd_get_elf_phdrs passing NULL to memcpy.
This patch avoids the complaint.

bfd/ChangeLog
2018-07-20  Tom Tromey  <tom@tromey.com>

	* elf.c (bfd_get_elf_phdrs): Don't call memcpy with size 0.
---
 bfd/ChangeLog | 4 ++++
 bfd/elf.c     | 5 +++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/bfd/elf.c b/bfd/elf.c
index 874629dc859..f72182788f9 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -11629,8 +11629,9 @@ bfd_get_elf_phdrs (bfd *abfd, void *phdrs)
     }
 
   num_phdrs = elf_elfheader (abfd)->e_phnum;
-  memcpy (phdrs, elf_tdata (abfd)->phdr,
-	  num_phdrs * sizeof (Elf_Internal_Phdr));
+  if (num_phdrs != 0)
+    memcpy (phdrs, elf_tdata (abfd)->phdr,
+	    num_phdrs * sizeof (Elf_Internal_Phdr));
 
   return num_phdrs;
 }
-- 
2.13.6



More information about the Binutils mailing list