diff options
author | Nicolai Hähnle <[email protected]> | 2017-01-27 11:58:41 +0100 |
---|---|---|
committer | Nicolai Hähnle <[email protected]> | 2017-02-06 17:39:01 +0100 |
commit | 40c304fc065259c07c0f4f7a35efedd205e4f250 (patch) | |
tree | e95850fc50ce23e28e55e32813035a5691724db6 /src/glx | |
parent | 02264bc6f9cb588bfa39f842c3f060356f3e32b7 (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 <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/glx')
-rw-r--r-- | src/glx/dri3_glx.c | 2 |
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); } |