aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/completer.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index eae761b..b0c3bd6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2020-12-04 Tom de Vries <tdevries@suse.de>
+
+ PR gdb/27003
+ * completer.c (completion_tracker::build_completion_result): Don't
+ access match_list[0][-1].
+
2020-12-04 Tom Tromey <tromey@adacore.com>
* linespec.c (struct linespec_token): Rename; remove typedef.
diff --git a/gdb/completer.c b/gdb/completer.c
index 262c855..83b46a0 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -2253,9 +2253,11 @@ completion_tracker::build_completion_result (const char *text,
/* If the tracker wants to, or we already have a space at the
end of the match, tell readline to skip appending
another. */
+ char *match = match_list[0];
bool completion_suppress_append
= (suppress_append_ws ()
- || match_list[0][strlen (match_list[0]) - 1] == ' ');
+ || (match[0] != '\0'
+ && match[strlen (match) - 1] == ' '));
return completion_result (match_list, 1, completion_suppress_append);
}