From ea5474bca870d87834662d71e37374f3a1cce813 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Sun, 5 Jul 2009 14:22:16 +0200 Subject: [PATCH] Don't trust xinerama not to return NULL We check that xinerama is active already, but someone got a NULL here. --- openbox/screen.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openbox/screen.c b/openbox/screen.c index 4cbed8c5..7eda7c37 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -1335,7 +1335,10 @@ typedef struct { static void get_xinerama_screens(Rect **xin_areas, guint *nxin) { guint i; - gint l, r, t, b; + gint n, l, r, t, b; +#ifdef XINERAMA + XineramaScreenInfo *info; +#endif if (ob_debug_xinerama) { gint w = WidthOfScreen(ScreenOfDisplay(obt_display, ob_screen)); @@ -1346,10 +1349,8 @@ static void get_xinerama_screens(Rect **xin_areas, guint *nxin) RECT_SET((*xin_areas)[1], w/2, 0, w-(w/2), h); } #ifdef XINERAMA - else if (obt_display_extension_xinerama) { - guint i; - gint n; - XineramaScreenInfo *info = XineramaQueryScreens(obt_display, &n); + else if (obt_display_extension_xinerama && + (info = XineramaQueryScreens(obt_display, &n))) { *nxin = n; *xin_areas = g_new(Rect, *nxin + 1); for (i = 0; i < *nxin; ++i) -- 2.34.1