aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf.c
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/elf.c
parentx86: Add a test for missing broadcast (diff)
downloadbinutils-gdb-01bcaf636ad0b1d5fe44a21917ec900af86072a8.tar.gz
binutils-gdb-01bcaf636ad0b1d5fe44a21917ec900af86072a8.tar.bz2
binutils-gdb-01bcaf636ad0b1d5fe44a21917ec900af86072a8.zip
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/elf.c')
-rw-r--r--bfd/elf.c5
1 files changed, 3 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;
}