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] TUI: avoid calling strcpy() on identical string objects


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2eb639cbe4baa33545ca008d6054ea5db1d8f6a8

commit 2eb639cbe4baa33545ca008d6054ea5db1d8f6a8
Author: Patrick Palka <patrick@parcs.ath.cx>
Date:   Sat Apr 25 10:29:29 2015 -0400

    TUI: avoid calling strcpy() on identical string objects
    
    In tui_set_source_content(), when offset == 0 the source and destination
    pointers of the call to strcpy() are actually the same.  In this case
    not only is strcpy() unnecessary but it is also UB when the two strings
    overlap.
    
    gdb/ChangeLog:
    
    	* tui/tui-source.c (tui_set_source_content): Avoid calling
    	strcpy() when offset is 0.

Diff:
---
 gdb/ChangeLog        | 5 +++++
 gdb/tui/tui-source.c | 4 +++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1ff7a75..d833876 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
 2015-04-28  Patrick Palka  <patrick@parcs.ath.cx>
 
+	* tui/tui-source.c (tui_set_source_content): Avoid calling
+	strcpy() when offset is 0.
+
+2015-04-28  Patrick Palka  <patrick@parcs.ath.cx>
+
 	PR gdb/18155
 	* tui/tui-data.c (tui_free_window): Don't free the locator
 	window when passed an SRC_WIN or a DISASSEM_WIN.
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index 31df0c8..018a1df 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -218,7 +218,9 @@ tui_set_source_content (struct symtab *s,
 			}
 		      /* Now copy the line taking the offset into
 			 account.  */
-		      if (strlen (src_line) > offset)
+		      if (offset == 0)
+			;
+		      else if (strlen (src_line) > offset)
 			strcpy (TUI_SRC_WIN->generic.content[cur_line]
 				  ->which_element.source.line,
 				&src_line[offset]);


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