aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/completer.c6
2 files changed, 8 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 821d62f..3bc24ac 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,8 @@
2007-08-17 Michael Snyder <msnyder@access-company.com>
+ * completer.c (location_completer): Must free 'fn_list', except
+ in the one case where it is returned (as 'list').
+
* varobj.c (value_of_root): Memory leak.
* gdbtypes.h (virtual_base_list): Remove export decl.
diff --git a/gdb/completer.c b/gdb/completer.c
index 617aa6a..0a0d30e 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -281,7 +281,8 @@ location_completer (char *text, char *word)
list = make_symbol_completion_list (symbol_start, word);
/* If text includes characters which cannot appear in a file
name, they cannot be asking for completion on files. */
- if (strcspn (text, gdb_completer_file_name_break_characters) == text_len)
+ if (strcspn (text,
+ gdb_completer_file_name_break_characters) == text_len)
fn_list = make_source_files_completion_list (text, text);
}
@@ -331,7 +332,10 @@ location_completer (char *text, char *word)
/* No completions at all. As the final resort, try completing
on the entire text as a symbol. */
list = make_symbol_completion_list (orig_text, word);
+ xfree (fn_list);
}
+ else
+ xfree (fn_list);
return list;
}