TUI: avoid calling strcpy() on indentical string objects
Commit Message
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(-)
Comments
On 04/26/2015 04:17 PM, Patrick Palka wrote:
> 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.
OK.
Boy is that code messy.
Thanks,
Pedro Alves
@@ -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]);