diff options
author | Thomas Thurman <tthurman@gnome.org> | 2008-03-29 21:29:57 +0000 |
---|---|---|
committer | Thomas James Alexander Thurman <tthurman@src.gnome.org> | 2008-03-29 21:29:57 +0000 |
commit | 6a586e892940b34ee02ff94732fa3d9abe61cbab (patch) | |
tree | 3d5639440c6c9644b939bc1c4a34f999c0131429 | |
parent | 58ef1592a5d9d2a0577da977cb27f417032718cf (diff) | |
download | metacity-6a586e892940b34ee02ff94732fa3d9abe61cbab.tar.gz |
prevent null dereference if the theme was invalid, which caused crashes in
2008-03-29 Thomas Thurman <tthurman@gnome.org>
* src/ui/preview-widget.c (meta_preview_get_clip_region):
prevent null dereference if the theme was invalid, which
caused crashes in gnome-appearance-properties. No GNOME
bug number, but I believe this is a fix for Launchpad bug
#199402 and its many duplicates.
svn path=/trunk/; revision=3668
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/ui/preview-widget.c | 21 |
2 files changed, 21 insertions, 8 deletions
@@ -1,3 +1,11 @@ +2008-03-29 Thomas Thurman <tthurman@gnome.org> + + * src/ui/preview-widget.c (meta_preview_get_clip_region): + prevent null dereference if the theme was invalid, which + caused crashes in gnome-appearance-properties. No GNOME + bug number, but I believe this is a fix for Launchpad bug + #199402 and its many duplicates. + 2008-03-28 Owen Taylor <otaylor@redhat.com> * src/core/window.c (meta_window_new_with_attrs): Don't diff --git a/src/ui/preview-widget.c b/src/ui/preview-widget.c index c0ac6d74..4d2f9a2e 100644 --- a/src/ui/preview-widget.c +++ b/src/ui/preview-widget.c @@ -478,6 +478,19 @@ meta_preview_get_clip_region (MetaPreview *preview, gint new_window_width, gint flags = (META_PREVIEW (preview)->flags); + window_xregion = gdk_region_new (); + + xrect.x = 0; + xrect.y = 0; + xrect.width = new_window_width; + xrect.height = new_window_height; + + gdk_region_union_with_rect (window_xregion, &xrect); + + if (preview->theme == NULL) + return window_xregion; + + /* Otherwise, we do have a theme, so calculate the corners */ frame_style = meta_theme_get_frame_style (preview->theme, META_FRAME_TYPE_NORMAL, flags); @@ -558,14 +571,6 @@ meta_preview_get_clip_region (MetaPreview *preview, gint new_window_width, gint } } - window_xregion = gdk_region_new (); - - xrect.x = 0; - xrect.y = 0; - xrect.width = new_window_width; - xrect.height = new_window_height; - - gdk_region_union_with_rect (window_xregion, &xrect); gdk_region_subtract (window_xregion, corners_xregion); gdk_region_destroy (corners_xregion); |