path: root/src/glx
diff options
authorNicolai Hähnle <>2017-01-27 11:58:41 +0100
committerNicolai Hähnle <>2017-02-06 17:39:01 +0100
commit40c304fc065259c07c0f4f7a35efedd205e4f250 (patch)
treee95850fc50ce23e28e55e32813035a5691724db6 /src/glx
parent02264bc6f9cb588bfa39f842c3f060356f3e32b7 (diff)
glx/dri3: handle NULL pointers in loader-to-DRI3 drawable conversion
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 <>
Diffstat (limited to 'src/glx')
1 files changed, 2 insertions, 0 deletions
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);