aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-07-15 18:07:40 -0600
committerTom Tromey <tom@tromey.com>2018-07-23 08:14:00 -0600
commit01bcaf636ad0b1d5fe44a21917ec900af86072a8 (patch)
tree98ffe83dd19e92881ae4b0319e4cfa9604a46f59 /bfd
parente2b7fbc46d08605bd2807678475e01be42e589e6 (diff)
downloadfsf-binutils-gdb-01bcaf636ad0b1d5fe44a21917ec900af86072a8.zip
fsf-binutils-gdb-01bcaf636ad0b1d5fe44a21917ec900af86072a8.tar.gz
fsf-binutils-gdb-01bcaf636ad0b1d5fe44a21917ec900af86072a8.tar.bz2
Avoid ubsan complaint in BFD
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-23 Tom Tromey <tom@tromey.com> * elf.c (bfd_get_elf_phdrs): Don't call memcpy with size 0.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/elf.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5b79a25..19fd9df 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2018-07-23 Tom Tromey <tom@tromey.com>
+
+ * elf.c (bfd_get_elf_phdrs): Don't call memcpy with size 0.
+
2018-07-21 Eric Botcazou <ebotcazou@adacore.com>
* elf32-arm.c (elf32_arm_final_link_relocate) <R_ARM_GOT32>: Small
diff --git a/bfd/elf.c b/bfd/elf.c
index 874629d..f721827 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;
}