[PATCH] TUI: avoid calling strcpy() on indentical string objects

Patrick Palka patrick@parcs.ath.cx
Sun Apr 26 15:17:00 GMT 2015


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.
---
 gdb/tui/tui-source.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

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]);
-- 
2.4.0.rc2.31.g7c597ef



More information about the Gdb-patches mailing list