don't even try to open NULL filenames, and don't leak filenames when

2007-12-14  Jens Granseuer  <jensgr@gmx.net>

	* gtkrc-utils.c: (gtkrc_get_details), (gtkrc_get_color_scheme): don't
	even try to open NULL filenames, and don't leak filenames when
	detecting recursions

svn path=/trunk/; revision=8330
This commit is contained in:
Jens Granseuer 2007-12-14 15:03:27 +00:00 committed by Jens Granseuer
parent 22ab2e4a26
commit b0912ed2b5
2 changed files with 16 additions and 4 deletions

View file

@ -1,3 +1,9 @@
2007-12-14 Jens Granseuer <jensgr@gmx.net>
* gtkrc-utils.c: (gtkrc_get_details), (gtkrc_get_color_scheme): don't
even try to open NULL filenames, and don't leak filenames when
detecting recursions
2007-12-09 Jens Granseuer <jensgr@gmx.net> 2007-12-09 Jens Granseuer <jensgr@gmx.net>
* theme-thumbnail.c: (hbox_foreach): don't try to map invisible * theme-thumbnail.c: (hbox_foreach): don't try to map invisible

View file

@ -93,9 +93,13 @@ gtkrc_get_details (gchar *filename, GSList **engines, GSList **symbolic_colors)
filename = files->data; filename = files->data;
files = g_slist_delete_link (files, files); files = g_slist_delete_link (files, files);
if (filename == NULL)
continue;
if (g_slist_find_custom (read_files, filename, (GCompareFunc) str_nequal)) if (g_slist_find_custom (read_files, filename, (GCompareFunc) str_nequal))
{ {
g_warning ("Recursion in the gtkrc detected!"); g_warning ("Recursion in the gtkrc detected!");
g_free (filename);
continue; /* skip this file since we've done it before... */ continue; /* skip this file since we've done it before... */
} }
@ -104,8 +108,7 @@ gtkrc_get_details (gchar *filename, GSList **engines, GSList **symbolic_colors)
file = g_open (filename, O_RDONLY); file = g_open (filename, O_RDONLY);
if (file == -1) if (file == -1)
{ {
g_warning ("Could not open file \"%s\"", g_warning ("Could not open file \"%s\"", filename);
filename ? filename : "(null)");
} }
else else
{ {
@ -182,9 +185,13 @@ gtkrc_get_color_scheme (gchar *filename)
filename = files->data; filename = files->data;
files = g_slist_delete_link (files, files); files = g_slist_delete_link (files, files);
if (filename == NULL)
continue;
if (g_slist_find_custom (read_files, filename, (GCompareFunc) str_nequal)) if (g_slist_find_custom (read_files, filename, (GCompareFunc) str_nequal))
{ {
g_warning ("Recursion in the gtkrc detected!"); g_warning ("Recursion in the gtkrc detected!");
g_free (filename);
continue; /* skip this file since we've done it before... */ continue; /* skip this file since we've done it before... */
} }
@ -193,8 +200,7 @@ gtkrc_get_color_scheme (gchar *filename)
file = g_open (filename, O_RDONLY); file = g_open (filename, O_RDONLY);
if (file == -1) if (file == -1)
{ {
g_warning ("Could not open file \"%s\"", g_warning ("Could not open file \"%s\"", filename);
filename ? filename : "(null)");
} }
else else
{ {