diff options
author | Eric Anholt <eric@anholt.net> | 2016-08-21 23:34:57 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2016-08-26 01:37:39 -0700 |
commit | 15fa1a5a7d967e01e479ac5ef0d95734048a0376 (patch) | |
tree | 8c4a0a045ce366060ab5909d836cb80623a1ae07 | |
parent | 9b4713f5366aa43ac0db6a8f1d96f33b2f527978 (diff) | |
download | servo-15fa1a5a7d967e01e479ac5ef0d95734048a0376.tar.gz servo-15fa1a5a7d967e01e479ac5ef0d95734048a0376.zip |
webgl: Fix validation of drawElements()'s type argument.
Fixes crash due to unexpected GL errors in gl-drawelements.html.
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 8 | ||||
-rw-r--r-- | tests/wpt/metadata/webgl/conformance-1.0.3/conformance/rendering/gl-drawelements.html.ini | 3 |
2 files changed, 5 insertions, 6 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 4db5654d738..059c6941bc1 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -1165,10 +1165,12 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.11 fn DrawElements(&self, mode: u32, count: i32, type_: u32, offset: i64) { + // From the GLES 2.0.25 spec, page 21: + // + // "type must be one of UNSIGNED_BYTE or UNSIGNED_SHORT" let type_size = match type_ { - constants::BYTE | constants::UNSIGNED_BYTE => 1, - constants::SHORT | constants::UNSIGNED_SHORT => 2, - constants::INT | constants::UNSIGNED_INT | constants::FLOAT => 4, + constants::UNSIGNED_BYTE => 1, + constants::UNSIGNED_SHORT => 2, _ => return self.webgl_error(InvalidEnum), }; diff --git a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/rendering/gl-drawelements.html.ini b/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/rendering/gl-drawelements.html.ini deleted file mode 100644 index fbdf4eaeed8..00000000000 --- a/tests/wpt/metadata/webgl/conformance-1.0.3/conformance/rendering/gl-drawelements.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[gl-drawelements.html] - type: testharness - expected: CRASH |