[Mesa-stable] [PATCH] glx: Properly handle cases where screen creation fails
Chuck Atkins
chuck.atkins at kitware.com
Wed Feb 21 14:26:34 UTC 2018
This fixes a segfault exposed by a29d63ecf7 which occurs when swr is
used on an unsupported architecture.
Signed-off-by: Chuck Atkins <chuck.atkins at kitware.com>
Cc: mesa-stable at lists.freedesktop.org
Cc: George Kyriazis <george.kyriazis at intel.com>
Cc: Bruce Cherniak <bruce.cherniak at intel.com>
---
src/gallium/state_trackers/glx/xlib/xm_api.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c
index 934c0aba11..3aec57e85d 100644
--- a/src/gallium/state_trackers/glx/xlib/xm_api.c
+++ b/src/gallium/state_trackers/glx/xlib/xm_api.c
@@ -182,9 +182,12 @@ xmesa_close_display(Display *display)
* }
*/
- if (xmdpy->smapi->destroy)
- xmdpy->smapi->destroy(xmdpy->smapi);
- free(xmdpy->smapi);
+ if (xmdpy->smapi)
+ {
+ if (xmdpy->smapi->destroy)
+ xmdpy->smapi->destroy(xmdpy->smapi);
+ free(xmdpy->smapi);
+ }
XFree((char *) info);
}
@@ -767,7 +770,7 @@ XMesaVisual XMesaCreateVisual( Display *display,
XMesaVisual v;
GLint red_bits, green_bits, blue_bits, alpha_bits;
- if (!xmdpy)
+ if (!xmdpy || !xmdpy->screen)
return NULL;
/* For debugging only */
--
2.14.3
More information about the mesa-stable
mailing list