Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
index a3ad42338965a9e9f7e5c85fb6e133d83079545d..73c60e5ce3d92b9d3ed216071c823f33bc7b25bf 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -11117,9 +11117,10 @@ void GLES2DecoderImpl::DoCompressedTexSubImage3D( |
"glCompressedTexSubImage3D", format, "format"); |
return; |
} |
- if (width < 0 || height < 0 || depth < 0) { |
+ if (!texture_manager()->ValidForTarget(target, level, width, height, depth)) { |
LOCAL_SET_GL_ERROR( |
- GL_INVALID_VALUE, "glCompressedTexSubImage3D", "size < 0"); |
+ GL_INVALID_VALUE, |
+ "glCompressedTexSubImage3D", "dimensions out of range"); |
return; |
} |
if (image_size < 0) { |
@@ -11333,6 +11334,12 @@ void GLES2DecoderImpl::DoCompressedTexSubImage2D( |
GLenum format, |
GLsizei image_size, |
const void * data) { |
+ if (!texture_manager()->ValidForTarget(target, level, width, height, 1)) { |
Zhenyao Mo
2016/03/04 17:39:58
This needs to happen after GetTextureInfoForTarget
yunchao
2016/03/07 02:58:19
Done.
|
+ LOCAL_SET_GL_ERROR( |
+ GL_INVALID_VALUE, |
+ "glCompressedTexSubImage2D", "dimensions out of range"); |
+ return; |
+ } |
TextureRef* texture_ref = texture_manager()->GetTextureInfoForTarget( |
&state_, target); |
if (!texture_ref) { |