From 40c304fc065259c07c0f4f7a35efedd205e4f250 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Fri, 27 Jan 2017 11:58:41 +0100 Subject: [PATCH] glx/dri3: handle NULL pointers in loader-to-DRI3 drawable conversion MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit With a subsequent patch, we might see NULL loaderPrivates, e.g. when a DRIdrawable is flushed whose corresponding GLXDRIdrawable was destroyed. This resulted in a crash, since the loader vs. DRI3 drawable structures have a non-zero offset. Fixes glx-visuals-{depth,stencil} -pixmap Cc: 17.0 Reviewed-by: Marek Olšák Reviewed-by: Emil Velikov --- src/glx/dri3_glx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index 4472a0bed26..f7bcba32f3e 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -81,6 +81,8 @@ static struct dri3_drawable * loader_drawable_to_dri3_drawable(struct loader_dri3_drawable *draw) { size_t offset = offsetof(struct dri3_drawable, loader_drawable); + if (!draw) + return NULL; return (struct dri3_drawable *)(((void*) draw) - offset); } -- 2.30.2