Chromium Code Reviews| 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) { |