From 2d7e0f35c54f49c3280eea308a652253cb3bde46 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tapani=20P=C3=A4lli?= Date: Fri, 7 Oct 2016 08:41:15 +0300 Subject: [PATCH] mesa: throw error if bufSize negative in GetSynciv on OpenGL ES MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes following dEQP tests: dEQP-GLES31.functional.debug.negative_coverage.callbacks.state.get_synciv dEQP-GLES31.functional.debug.negative_coverage.get_error.state.get_synciv dEQP-GLES31.functional.debug.negative_coverage.log.state.get_synciv v2: drop _mesa_is_gles check (Kenneth) Signed-off-by: Tapani Pälli Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98133 Reviewed-by: Kenneth Graunke --- src/mesa/main/syncobj.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mesa/main/syncobj.c b/src/mesa/main/syncobj.c index be758dd1241..a3124e40056 100644 --- a/src/mesa/main/syncobj.c +++ b/src/mesa/main/syncobj.c @@ -425,6 +425,14 @@ _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, return; } + /* Section 4.1.3 (Sync Object Queries) of the OpenGL ES 3.10 spec says: + * + * "An INVALID_VALUE error is generated if bufSize is negative." + */ + if (bufSize < 0) { + _mesa_error(ctx, GL_INVALID_VALUE, "glGetSynciv(pname=0x%x)\n", pname); + } + if (size > 0 && bufSize > 0) { const GLsizei copy_count = MIN2(size, bufSize); -- 2.30.2