diff options
author | Juha-Pekka Heikkila <[email protected]> | 2014-02-07 14:44:00 +0200 |
---|---|---|
committer | Brian Paul <[email protected]> | 2014-02-07 08:14:05 -0700 |
commit | e503609e6feb9373ec3bba4ff028a66f1517be30 (patch) | |
tree | a29b0426be98dfa9664643f846f37dabb1f7060c /src/glx | |
parent | 88cad8356eadde7b6bc25cc5a0c1762352e5b3f7 (diff) |
glx: Add some missing null checks in glx_pbuffer.c
Signed-off-by: Juha-Pekka Heikkila <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/glx')
-rw-r--r-- | src/glx/glx_pbuffer.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/glx/glx_pbuffer.c b/src/glx/glx_pbuffer.c index 183fbaaa500..411d6e572f1 100644 --- a/src/glx/glx_pbuffer.c +++ b/src/glx/glx_pbuffer.c @@ -60,7 +60,7 @@ warn_GLX_1_3(Display * dpy, const char *function_name) { struct glx_display *priv = __glXInitialize(dpy); - if (priv->minorVersion < 3) { + if (priv && priv->minorVersion < 3) { fprintf(stderr, "WARNING: Application calling GLX 1.3 function \"%s\" " "when GLX 1.3 is not supported! This is an application bug!\n", @@ -91,7 +91,7 @@ ChangeDrawableAttribute(Display * dpy, GLXDrawable drawable, CARD8 opcode; int i; - if ((dpy == NULL) || (drawable == 0)) { + if ((priv == NULL) || (dpy == NULL) || (drawable == 0)) { return; } @@ -197,6 +197,11 @@ CreateDRIDrawable(Display *dpy, struct glx_config *config, __GLXDRIdrawable *pdraw; struct glx_screen *psc; + if (priv == NULL) { + fprintf(stderr, "failed to create drawable\n"); + return GL_FALSE; + } + psc = priv->screens[config->screen]; if (psc->driScreen == NULL) return GL_TRUE; @@ -226,7 +231,7 @@ DestroyDRIDrawable(Display *dpy, GLXDrawable drawable, int destroy_xdrawable) __GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable); XID xid; - if (pdraw != NULL) { + if (priv != NULL && pdraw != NULL) { xid = pdraw->xDrawable; (*pdraw->destroyDrawable) (pdraw); __glxHashDelete(priv->drawHash, drawable); @@ -294,6 +299,9 @@ GetDrawableAttribute(Display * dpy, GLXDrawable drawable, } priv = __glXInitialize(dpy); + if (priv == NULL) + return 0; + use_glx_1_3 = ((priv->majorVersion > 1) || (priv->minorVersion >= 3)); *value = 0; @@ -504,6 +512,9 @@ CreatePbuffer(Display * dpy, struct glx_config *config, Pixmap pixmap; GLboolean glx_1_3 = GL_FALSE; + if (priv == NULL) + return None; + i = 0; if (attrib_list) { while (attrib_list[i * 2]) @@ -593,7 +604,7 @@ DestroyPbuffer(Display * dpy, GLXDrawable drawable) struct glx_display *priv = __glXInitialize(dpy); CARD8 opcode; - if ((dpy == NULL) || (drawable == 0)) { + if ((priv == NULL) || (dpy == NULL) || (drawable == 0)) { return; } |