Mesa (master): egl/x11: bail out if we cannot fetch the xcb connection

Emil Velikov evelikov at kemper.freedesktop.org
Fri Aug 7 18:19:41 UTC 2015


Module: Mesa
Branch: master
Commit: 60e9c35b3a0384860ffcb01d902a69ee13254eb9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=60e9c35b3a0384860ffcb01d902a69ee13254eb9

Author: Emil Velikov <emil.l.velikov at gmail.com>
Date:   Wed Jul 29 17:19:02 2015 +0100

egl/x11: bail out if we cannot fetch the xcb connection

The documentation of xcb_connection_has_error() does not mention
what will happen, if NULL is fed to the function.

Upon closer look (props to Matt), it seems that we'll crash as the
implementation dereferences conn.

This will also allow us to remove the dri2_dpy->conn checking with the
next commit.

v2: Reword commit message as per Matt's findings.

Acked-by: Alex Deucher <alexander.deucher at amd.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>

---

 src/egl/drivers/dri2/platform_x11.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index fecd36b..7a28318 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -1222,7 +1222,7 @@ dri2_initialize_x11_dri2(_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, "DRI2: xcb_connect failed");
       goto cleanup_dpy;
    }




More information about the mesa-commit mailing list