mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-24 11:12:11 +01:00
Fix a memleak
An early exit in expand_application_parameters forgot to free a GString. Reported by Steve Grubb. (cherry picked from commit b00c6d7fb5798b4e528554e1221a553ab95506ed)
This commit is contained in:
parent
6a8828d40f
commit
aecd2616c7
@ -701,16 +701,18 @@ expand_application_parameters (GDesktopAppInfo *info,
|
||||
{
|
||||
GList *uri_list = *uris;
|
||||
const char *p = info->exec;
|
||||
GString *expanded_exec = g_string_new (NULL);
|
||||
GString *expanded_exec;
|
||||
gboolean res;
|
||||
|
||||
|
||||
if (info->exec == NULL)
|
||||
{
|
||||
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
||||
_("Desktop file didn't specify Exec field"));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
expanded_exec = g_string_new (NULL);
|
||||
|
||||
while (*p)
|
||||
{
|
||||
if (p[0] == '%' && p[1] != '\0')
|
||||
@ -720,10 +722,10 @@ expand_application_parameters (GDesktopAppInfo *info,
|
||||
}
|
||||
else
|
||||
g_string_append_c (expanded_exec, *p);
|
||||
|
||||
|
||||
p++;
|
||||
}
|
||||
|
||||
|
||||
/* No file substitutions */
|
||||
if (uri_list == *uris && uri_list != NULL)
|
||||
{
|
||||
@ -731,7 +733,7 @@ expand_application_parameters (GDesktopAppInfo *info,
|
||||
g_string_append_c (expanded_exec, ' ');
|
||||
expand_macro ('f', expanded_exec, info, uris);
|
||||
}
|
||||
|
||||
|
||||
res = g_shell_parse_argv (expanded_exec->str, argc, argv, error);
|
||||
g_string_free (expanded_exec, TRUE);
|
||||
return res;
|
||||
|
Loading…
x
Reference in New Issue
Block a user