shell-util: Handle NULL from meta_window_get_image()

Until commit 506b75fc7f we got away with not handling a NULL return
value, as cairo_surface_destroy() deals with a NULL surface; the same
isn't true for get_width/get_height, so guard to code in question to
prevent a crash.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1678
This commit is contained in:
Florian Müllner 2019-09-23 13:46:05 +02:00 committed by Georges Basile Stavracas Neto
parent 70a5c3875c
commit 60cab56f86

View File

@ -419,7 +419,7 @@ canvas_draw_cb (ClutterContent *content,
* @window_actor: a #MetaWindowActor * @window_actor: a #MetaWindowActor
* @window_rect: a #MetaRectangle * @window_rect: a #MetaRectangle
* *
* Returns: (transfer full): a new #ClutterContent * Returns: (transfer full) (nullable): a new #ClutterContent
*/ */
ClutterContent * ClutterContent *
shell_util_get_content_for_window_actor (MetaWindowActor *window_actor, shell_util_get_content_for_window_actor (MetaWindowActor *window_actor,
@ -439,6 +439,9 @@ shell_util_get_content_for_window_actor (MetaWindowActor *window_actor,
surface = meta_window_actor_get_image (window_actor, &clip); surface = meta_window_actor_get_image (window_actor, &clip);
if (!surface)
return NULL;
content = clutter_canvas_new (); content = clutter_canvas_new ();
clutter_canvas_set_size (CLUTTER_CANVAS (content), clutter_canvas_set_size (CLUTTER_CANVAS (content),
cairo_image_surface_get_width (surface), cairo_image_surface_get_width (surface),