aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Palka <patrick@parcs.ath.cx>2015-04-25 10:29:29 -0400
committerPatrick Palka <patrick@parcs.ath.cx>2015-04-27 21:19:58 -0400
commit2eb639cbe4baa33545ca008d6054ea5db1d8f6a8 (patch)
tree75913443c4e5dade016d08610cded0bd1451ae2b
parent9720679936fc4f710d718f13d903c7826e048a36 (diff)
downloadgdb-2eb639cbe4baa33545ca008d6054ea5db1d8f6a8.zip
gdb-2eb639cbe4baa33545ca008d6054ea5db1d8f6a8.tar.gz
gdb-2eb639cbe4baa33545ca008d6054ea5db1d8f6a8.tar.bz2
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.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/tui/tui-source.c4
2 files changed, 8 insertions, 1 deletions
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]);