summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Granseuer <jensgr@gmx.net>2007-04-04 16:27:19 +0000
committerJens Granseuer <jensg@src.gnome.org>2007-04-04 16:27:19 +0000
commitb9e1b4d4bc1eb25e74d911f7f69f629ebb310a5c (patch)
tree2792fad8d727b8be5170252c46d9f9d9f2fcfb05
parent5f9c2ac3aac5213242fd3e7a4875b44833f123e1 (diff)
downloadgnome-control-center-b9e1b4d4bc1eb25e74d911f7f69f629ebb310a5c.tar.gz
don't crash if the color string is mangled, and close a small memory leak
2007-04-04 Jens Granseuer <jensgr@gmx.net> * gnome-theme-details.c: (update_color_buttons_from_string): don't crash if the color string is mangled, and close a small memory leak svn path=/branches/gnome-2-18/; revision=7441
-rw-r--r--capplets/theme-switcher/ChangeLog6
-rw-r--r--capplets/theme-switcher/gnome-theme-details.c37
2 files changed, 24 insertions, 19 deletions
diff --git a/capplets/theme-switcher/ChangeLog b/capplets/theme-switcher/ChangeLog
index 6b2ee17b8..a0a986377 100644
--- a/capplets/theme-switcher/ChangeLog
+++ b/capplets/theme-switcher/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-04 Jens Granseuer <jensgr@gmx.net>
+
+ * gnome-theme-details.c: (update_color_buttons_from_string):
+ don't crash if the color string is mangled, and close a small
+ memory leak
+
2007-03-21 Frederic Crozat <fcrozat@mandriva.com>
* gnome-theme-details.c: (update_color_scheme_tab):
diff --git a/capplets/theme-switcher/gnome-theme-details.c b/capplets/theme-switcher/gnome-theme-details.c
index 1c350badb..096c8d668 100644
--- a/capplets/theme-switcher/gnome-theme-details.c
+++ b/capplets/theme-switcher/gnome-theme-details.c
@@ -902,25 +902,24 @@ update_color_buttons_from_string (gchar *color_scheme)
{
color_scheme_pair = g_strsplit (current_string, ":", 0);
- if (color_scheme_pair[0] == NULL)
- continue;
-
- g_strstrip (color_scheme_pair[0]);
- g_strstrip (color_scheme_pair[1]);
-
-
- if (!strcmp ("fg_color", color_scheme_pair[0]))
- gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[0]);
- else if (!strcmp ("bg_color", color_scheme_pair[0]))
- gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[1]);
- else if (!strcmp ("text_color", color_scheme_pair[0]))
- gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[2]);
- else if (!strcmp ("base_color", color_scheme_pair[0]))
- gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[3]);
- else if (!strcmp ("selected_fg_color", color_scheme_pair[0]))
- gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[4]);
- else if (!strcmp ("selected_bg_color", color_scheme_pair[0]))
- gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[5]);
+ if (color_scheme_pair[0] != NULL && color_scheme_pair[1] != NULL)
+ {
+ g_strstrip (color_scheme_pair[0]);
+ g_strstrip (color_scheme_pair[1]);
+
+ if (!strcmp ("fg_color", color_scheme_pair[0]))
+ gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[0]);
+ else if (!strcmp ("bg_color", color_scheme_pair[0]))
+ gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[1]);
+ else if (!strcmp ("text_color", color_scheme_pair[0]))
+ gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[2]);
+ else if (!strcmp ("base_color", color_scheme_pair[0]))
+ gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[3]);
+ else if (!strcmp ("selected_fg_color", color_scheme_pair[0]))
+ gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[4]);
+ else if (!strcmp ("selected_bg_color", color_scheme_pair[0]))
+ gdk_color_parse (color_scheme_pair[1], &color_scheme_colors[5]);
+ }
g_strfreev (color_scheme_pair);
}