summaryrefslogtreecommitdiffstats
path: root/src/egl/main/eglsurface.c
diff options
context:
space:
mode:
authorFrank Binns <frank.binns@imgtec.com>2015-07-31 09:11:45 +0100
committerEric Anholt <eric@anholt.net>2015-08-04 20:03:16 -0700
commitb2c5986ea1c8e66c4e0a05bcacbcf28c27f5b183 (patch)
treebfc1a598e9b643bd95b2105d18d373b511c2100f /src/egl/main/eglsurface.c
parentcfc3200a35647026a0b5cf188f378ce33802044b (diff)
downloadexternal_mesa3d-b2c5986ea1c8e66c4e0a05bcacbcf28c27f5b183.zip
external_mesa3d-b2c5986ea1c8e66c4e0a05bcacbcf28c27f5b183.tar.gz
external_mesa3d-b2c5986ea1c8e66c4e0a05bcacbcf28c27f5b183.tar.bz2
egl: Add eglQuerySurface surface type check for EGL_LARGEST_PBUFFER attrib
Calling eglQuerySurface on a window or pixmap with the EGL_LARGEST_PBUFFER attribute resulted in the contents of the 'value' parameter being modified. This is the wrong behaviour according to the EGL spec, which states: "Querying EGL_LARGEST_PBUFFER for a pbuffer surface returns the same attribute value specified when the surface was created with eglCreatePbufferSurface. For a window or pixmap surface, the contents of value are not modified." Avoid this from happening by checking that the surface type is EGL_PBUFFER_BIT before modifying the contents of the parameter. Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Frank Binns <frank.binns@imgtec.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/egl/main/eglsurface.c')
-rw-r--r--src/egl/main/eglsurface.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/egl/main/eglsurface.c b/src/egl/main/eglsurface.c
index 541353f..4fa43f3 100644
--- a/src/egl/main/eglsurface.c
+++ b/src/egl/main/eglsurface.c
@@ -326,7 +326,8 @@ _eglQuerySurface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surface,
*value = surface->Config->ConfigID;
break;
case EGL_LARGEST_PBUFFER:
- *value = surface->LargestPbuffer;
+ if (surface->Type == EGL_PBUFFER_BIT)
+ *value = surface->LargestPbuffer;
break;
case EGL_TEXTURE_FORMAT:
/* texture attributes: only for pbuffers, no error otherwise */