diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c index f51a5310d..613ac05f1 100644 --- a/GL/glx/glxdri.c +++ b/GL/glx/glxdri.c @@ -614,6 +614,9 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen, else driShare = NULL; + if (baseShareContext && baseShareContext->isDirect) + return NULL; + context = xalloc(sizeof *context); if (context == NULL) return NULL; @@ -649,6 +652,11 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen, hwContext, &context->driContext); + if (context->driContext.private == NULL) { + xfree(context); + return NULL; + } + return &context->base; }