Remove invalid glGetIntegerv() enums.
GL_UNIFORM_BUFFER_SIZE and GL_UNIFORM_BUFFER_START can't be queried
using glGetIntegerv(). They're only valid for glGetInteger64i_v().
This prevents a potential null dereference.
Bug chromium:859775
Change-Id: Ic66f33a582805b021a2d4bd08ff627f704d42aa7
Reviewed-on: https://swiftshader-review.googlesource.com/19748
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index 7d21c63..227cd4c 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -2320,12 +2320,6 @@
case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT:
*params = UNIFORM_BUFFER_OFFSET_ALIGNMENT;
return true;
- case GL_UNIFORM_BUFFER_SIZE:
- *params = static_cast<T>(mState.genericUniformBuffer->size());
- return true;
- case GL_UNIFORM_BUFFER_START:
- *params = static_cast<T>(mState.genericUniformBuffer->offset());
- return true;
case GL_UNPACK_IMAGE_HEIGHT:
*params = mState.unpackParameters.imageHeight;
return true;
@@ -2413,7 +2407,7 @@
if(transformFeedback->getBuffer(index))
{
*param = transformFeedback->getOffset(index);
- break;
+ break;
}
else return false;
default:
@@ -2433,13 +2427,14 @@
case GL_UNIFORM_BUFFER_BINDING:
case GL_UNIFORM_BUFFER_SIZE:
case GL_UNIFORM_BUFFER_START:
- if(index >= MAX_UNIFORM_BUFFER_BINDINGS)
- {
- return error(GL_INVALID_VALUE, true);
- }
break;
default:
- break;
+ return false;
+ }
+
+ if(index >= MAX_UNIFORM_BUFFER_BINDINGS)
+ {
+ return error(GL_INVALID_VALUE, true);
}
const BufferBinding& uniformBuffer = mState.uniformBuffers[index];
@@ -2609,8 +2604,6 @@
case GL_TEXTURE_BINDING_2D_ARRAY:
case GL_UNIFORM_BUFFER_BINDING:
case GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT:
- case GL_UNIFORM_BUFFER_SIZE:
- case GL_UNIFORM_BUFFER_START:
case GL_UNPACK_IMAGE_HEIGHT:
case GL_UNPACK_ROW_LENGTH:
case GL_UNPACK_SKIP_IMAGES: