diff options
author | Jens Granseuer <jensgr@gmx.net> | 2007-04-04 16:27:19 +0000 |
---|---|---|
committer | Jens Granseuer <jensg@src.gnome.org> | 2007-04-04 16:27:19 +0000 |
commit | b9e1b4d4bc1eb25e74d911f7f69f629ebb310a5c (patch) | |
tree | 2792fad8d727b8be5170252c46d9f9d9f2fcfb05 | |
parent | 5f9c2ac3aac5213242fd3e7a4875b44833f123e1 (diff) | |
download | gnome-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/ChangeLog | 6 | ||||
-rw-r--r-- | capplets/theme-switcher/gnome-theme-details.c | 37 |
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); } |