This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Do not pass NULL to memcpy
- From: Tom Tromey <tromey at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 3 Oct 2018 21:28:16 -0000
- Subject: [binutils-gdb] Do not pass NULL to memcpy
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=10657c047e4e0257440c80fda5f4e23a3452616c
commit 10657c047e4e0257440c80fda5f4e23a3452616c
Author: Tom Tromey <tom@tromey.com>
Date: Thu Jul 26 17:48:40 2018 -0600
Do not pass NULL to memcpy
-fsanitize=undefined pointed out a spot that passes NULL to memcpy,
which is undefined behavior according to the C standard.
gdb/ChangeLog
2018-10-03 Tom Tromey <tom@tromey.com>
* namespace.c (add_using_directive): Don't pass NULL to memcpy.
Diff:
---
gdb/ChangeLog | 4 ++++
gdb/namespace.c | 5 +++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f5448c3..1f8b8e5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2018-10-03 Tom Tromey <tom@tromey.com>
+
+ * namespace.c (add_using_directive): Don't pass NULL to memcpy.
+
2018-10-03 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* tid-parse.c (tid_is_in_list): Fix wrong 'See' comment.
diff --git a/gdb/namespace.c b/gdb/namespace.c
index be998d9..85c0c4b 100644
--- a/gdb/namespace.c
+++ b/gdb/namespace.c
@@ -111,8 +111,9 @@ add_using_directive (struct using_direct **using_directives,
else
newobj->declaration = declaration;
- memcpy (newobj->excludes, excludes.data (),
- excludes.size () * sizeof (*newobj->excludes));
+ if (!excludes.empty ())
+ memcpy (newobj->excludes, excludes.data (),
+ excludes.size () * sizeof (*newobj->excludes));
newobj->excludes[excludes.size ()] = NULL;
newobj->next = *using_directives;