From b0912ed2b56d1e6cd7c26861cf68ba28e7d8b29d Mon Sep 17 00:00:00 2001 From: Jens Granseuer Date: Fri, 14 Dec 2007 15:03:27 +0000 Subject: [PATCH] don't even try to open NULL filenames, and don't leak filenames when 2007-12-14 Jens Granseuer * 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 --- capplets/common/ChangeLog | 6 ++++++ capplets/common/gtkrc-utils.c | 14 ++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/capplets/common/ChangeLog b/capplets/common/ChangeLog index 9f6e3c917..de2e2d0f2 100644 --- a/capplets/common/ChangeLog +++ b/capplets/common/ChangeLog @@ -1,3 +1,9 @@ +2007-12-14 Jens Granseuer + + * 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 * theme-thumbnail.c: (hbox_foreach): don't try to map invisible diff --git a/capplets/common/gtkrc-utils.c b/capplets/common/gtkrc-utils.c index acc29a3a9..89934ae60 100644 --- a/capplets/common/gtkrc-utils.c +++ b/capplets/common/gtkrc-utils.c @@ -93,9 +93,13 @@ gtkrc_get_details (gchar *filename, GSList **engines, GSList **symbolic_colors) filename = files->data; files = g_slist_delete_link (files, files); + if (filename == NULL) + continue; + if (g_slist_find_custom (read_files, filename, (GCompareFunc) str_nequal)) { g_warning ("Recursion in the gtkrc detected!"); + g_free (filename); 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); if (file == -1) { - g_warning ("Could not open file \"%s\"", - filename ? filename : "(null)"); + g_warning ("Could not open file \"%s\"", filename); } else { @@ -182,9 +185,13 @@ gtkrc_get_color_scheme (gchar *filename) filename = files->data; files = g_slist_delete_link (files, files); + if (filename == NULL) + continue; + if (g_slist_find_custom (read_files, filename, (GCompareFunc) str_nequal)) { g_warning ("Recursion in the gtkrc detected!"); + g_free (filename); 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); if (file == -1) { - g_warning ("Could not open file \"%s\"", - filename ? filename : "(null)"); + g_warning ("Could not open file \"%s\"", filename); } else {