[Mesa-dev] [PATCH 21/30] egl/x11: don't crash if dri2_dpy->conn is NULL

Kristian Høgsberg hoegsberg at gmail.com
Thu Aug 25 17:06:50 UTC 2016


On Thu, Aug 25, 2016 at 9:18 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> From: Emil Velikov <emil.velikov at collabora.com>
>
> The dri3 version of commits 60e9c35b3a0 and 6de9a03bed4.
>
> CC: <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
>  src/egl/drivers/dri2/platform_x11.c | 14 +++++---------
>  1 file changed, 5 insertions(+), 9 deletions(-)
>
> diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
> index 2a5fc0b..ede12b6 100644
> --- a/src/egl/drivers/dri2/platform_x11.c
> +++ b/src/egl/drivers/dri2/platform_x11.c
> @@ -1313,15 +1313,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;
>     }

When is dri2_dpy->conn ever NULL? xcb_connect() returns a valid
connection or an error object, and I don't see how XGetXCBConnection()
would ever return a NULL connection either.

Kristian

> -   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;
> --
> 2.9.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list