summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Vrany <jan.vrany@fit.cvut.cz>2019-05-30 13:04:26 +0100
committerJan Vrany <jan.vrany@fit.cvut.cz>2019-05-30 13:05:40 +0100
commit0ef209f22c24b9243de68c35c576f7111198f915 (patch)
tree01983da66876332cfaea7f1d650360aa25a78bde
parente3f56a99f66298bb505d0426950b9716a853a5df (diff)
downloadbinutils-gdb-0ef209f22c24b9243de68c35c576f7111198f915.tar.gz
Initialize variable word in complete
The complete function should set parameter word to the end of the word to complete. However, completion_find_completion_word may fail, leaving word uninitialized. To make sure word is always set, initialize it to the completion point which is the end of the line parameter. gdb/Changelog PR cli/24587 * completer.c (complete): Initialize variable word.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/completer.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2ab3615be6e..a32c6060ef2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2019-05-30 Jan Vrany <jan.vrany@fit.cvut.cz>
+
+ PR cli/24587
+ * completer.c (complete): Initialize variable word.
+
2019-05-29 Sergio Durigan Junior <sergiodj@redhat.com>
Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1708192
diff --git a/gdb/completer.c b/gdb/completer.c
index cc2f80bc66e..24c84466307 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -1622,6 +1622,13 @@ complete (const char *line, char const **word, int *quote_char)
completion_tracker tracker_handle_completions;
completion_tracker *tracker;
+ /* The WORD should be set to the end of word to complete. We initialize
+ to the completion point which is assumed to be at the end of LINE.
+ This leaves WORD to be initialized to a sensible value in cases
+ completion_find_completion_word() fails i.e., throws an exception.
+ See bug 24587. */
+ *word = line + strlen (line);
+
try
{
*word = completion_find_completion_word (tracker_handle_brkchars,