diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 6b098340d6..9f09ce1171 100644 --- a/gdk/x11/gdkscreen-x11.c +++ b/gdk/x11/gdkscreen-x11.c @@ -314,7 +314,7 @@ get_work_area (GdkScreen *screen, gulong num; gulong leftovers; gulong max_len = 4 * 32; - guchar *ret_workarea; + guchar *ret_workarea = NULL; long *workareas; int result; int disp_screen; @@ -356,7 +356,7 @@ get_work_area (GdkScreen *screen, format == 0 || leftovers || num % 4 != 0) - return; + goto out; desktop = get_current_desktop (screen); @@ -371,7 +371,9 @@ get_work_area (GdkScreen *screen, area->width /= x11_screen->window_scale; area->height /= x11_screen->window_scale; - XFree (ret_workarea); +out: + if (ret_workarea) + XFree (ret_workarea); } static void