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.
This commit is contained in:
Jan Vrany 2019-05-30 13:04:26 +01:00
parent e3f56a99f6
commit 0ef209f22c
2 changed files with 12 additions and 0 deletions

View File

@ -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

View File

@ -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,