Remove some special-casing of empty string which led to dangling pointers.

2006-04-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/gbookmarkfile.c (g_bookmark_file_set_description)
	(g_bookmark_file_set_title, g_bookmark_file_set_icon):
	Remove some special-casing of empty string which led to
	dangling pointers.  (#339337, Morten Welinder)
	(expand_exec_line): Don't use printf() needlessly, handle
	trailing '%' gracefully.  (#339338, Morten Welinder)
	(is_element_full): Silence the compiler.
This commit is contained in:
Matthias Clasen 2006-04-27 20:25:26 +00:00 committed by Matthias Clasen
parent 6ea2f9a2c6
commit 86eb750432
3 changed files with 15 additions and 7 deletions

View File

@ -4,6 +4,9 @@
(g_bookmark_file_set_title, g_bookmark_file_set_icon):
Remove some special-casing of empty string which led to
dangling pointers. (#339337, Morten Welinder)
(expand_exec_line): Don't use printf() needlessly, handle
trailing '%' gracefully. (#339338, Morten Welinder)
(is_element_full): Silence the compiler.
2006-04-27 Behdad Esfahbod <behdad@gnome.org>

View File

@ -4,6 +4,9 @@
(g_bookmark_file_set_title, g_bookmark_file_set_icon):
Remove some special-casing of empty string which led to
dangling pointers. (#339337, Morten Welinder)
(expand_exec_line): Don't use printf() needlessly, handle
trailing '%' gracefully. (#339338, Morten Welinder)
(is_element_full): Silence the compiler.
2006-04-27 Behdad Esfahbod <behdad@gnome.org>

View File

@ -1000,9 +1000,8 @@ is_element_full (ParseData *parse_data,
const gchar *element,
const gchar sep)
{
gchar *ns_uri, *ns_name;
gchar *element_name, *resolved;
gchar *p, *s;
gchar *ns_uri, *ns_name, *s, *resolved;
const gchar *p, *element_name;
gboolean retval;
g_assert (parse_data != NULL);
@ -3282,14 +3281,16 @@ expand_exec_line (const gchar *exec_fmt,
ch = *exec_fmt++;
switch (ch)
{
case '\0':
goto out;
case 'u':
g_string_append_printf (exec, "%s", uri);
g_string_append (exec, uri);
break;
case 'f':
{
gchar *file = g_filename_from_uri (uri, NULL, NULL);
g_string_append_printf (exec, "%s", file);
g_free (file);
gchar *file = g_filename_from_uri (uri, NULL, NULL);
g_string_append (exec, file);
g_free (file);
}
break;
case '%':
@ -3299,6 +3300,7 @@ expand_exec_line (const gchar *exec_fmt,
}
}
out:
return g_string_free (exec, FALSE);
}