From bfb3aa9d4800811c14c1df4da2dedc924655712d Mon Sep 17 00:00:00 2001 From: Tom Parker Date: Fri, 26 Jun 2009 22:41:23 -0400 Subject: [PATCH] Add NULL to end of g_filename_complete_get_completions() return value g_filename_complete_get_completions() return value is meant to be a g_strfreev-compatible array i.e. NULL-terminated. However, pointer arrays aren't automagically NULL-terminated. This fixes bug 586868 --- gio/gfilenamecompleter.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gio/gfilenamecompleter.c b/gio/gfilenamecompleter.c index 459e3025b..52476770d 100644 --- a/gio/gfilenamecompleter.c +++ b/gio/gfilenamecompleter.c @@ -470,7 +470,7 @@ g_filename_completer_get_completion_suffix (GFilenameCompleter *completer, **/ char ** g_filename_completer_get_completions (GFilenameCompleter *completer, - const char *initial_text) + const char *initial_text) { GList *possible_matches, *l; char *prefix; @@ -486,14 +486,16 @@ g_filename_completer_get_completions (GFilenameCompleter *completer, for (l = possible_matches; l != NULL; l = l->next) { possible_match = l->data; - + if (g_str_has_prefix (possible_match, prefix)) g_ptr_array_add (res, g_strconcat (initial_text, possible_match + strlen (prefix), NULL)); } g_free (prefix); - + + g_ptr_array_add (res, NULL); + return (char**)g_ptr_array_free (res, FALSE); }