This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]