[RFA] Avoid ubsan complaint in BFD
John Darrington
john@darrington.wattle.id.au
Fri Jul 20 17:48:00 GMT 2018
My personal opinion is that if tools don't understand the standard(s)
properly, then it's bad form to pander to them just for the sake of
shutting them up.
I remember in years gone by people used to religiously write
if (x != NULL)
free (x);
As well as needlessly increasting the line count it meant that coverage
analysis would complain about untrialled branches. It got to be silly.
Just my $0.02
On Fri, Jul 20, 2018 at 09:52:41AM -0600, Tom Tromey wrote:
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
--
Avoid eavesdropping. Send strong encrypted email.
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://sourceware.org/pipermail/binutils/attachments/20180720/a546ad80/attachment.sig>
More information about the Binutils
mailing list