From: Emil Velikov Date: Wed, 24 Aug 2016 22:57:16 +0000 (+0100) Subject: egl/x11: don't crash if dri2_dpy->conn is NULL X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b10c05d4ffaf67786b48b978871e1015b3840653;p=mesa.git egl/x11: don't crash if dri2_dpy->conn is NULL The dri3 version of commits 60e9c35b3a0 and 6de9a03bed4. While using xcb_connect() guarantees that we always get a non NULL return value, XGetXCBConnection() does/can not. CC: Signed-off-by: Emil Velikov Reviewed-by: Eric Engestrom --- diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index 296ddb333b2..c27f289459d 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -1312,15 +1312,13 @@ dri2_initialize_x11_dri3(_EGLDriver *drv, _EGLDisplay *disp) dri2_dpy->screen = DefaultScreen(dpy); } - if (xcb_connection_has_error(dri2_dpy->conn)) { + if (!dri2_dpy->conn || xcb_connection_has_error(dri2_dpy->conn)) { _eglLog(_EGL_WARNING, "DRI3: xcb_connect failed"); goto cleanup_dpy; } - if (dri2_dpy->conn) { - if (!dri3_x11_connect(dri2_dpy)) - goto cleanup_conn; - } + if (!dri3_x11_connect(dri2_dpy)) + goto cleanup_conn; if (!dri2_load_driver_dri3(disp)) goto cleanup_conn; @@ -1346,10 +1344,8 @@ dri2_initialize_x11_dri3(_EGLDriver *drv, _EGLDisplay *disp) disp->Extensions.WL_bind_wayland_display = EGL_TRUE; #endif - if (dri2_dpy->conn) { - if (!dri2_x11_add_configs_for_visuals(dri2_dpy, disp, false)) - goto cleanup_configs; - } + if (!dri2_x11_add_configs_for_visuals(dri2_dpy, disp, false)) + goto cleanup_configs; dri2_dpy->loader_dri3_ext.core = dri2_dpy->core; dri2_dpy->loader_dri3_ext.image_driver = dri2_dpy->image_driver;