aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <ecoal95@gmail.com>2016-03-27 14:18:13 +0200
committerEmilio Cobos Álvarez <me@emiliocobos.me>2016-04-03 01:21:56 +0200
commit240ac7cfe2c5ce87a87ce1bf38d7a62a3c32aaa2 (patch)
tree08afd79585178434013ed6f69c29b0c053f86ce0 /components/script/dom
parent8b32e63db843b4ac534c33a87ed53a4acf9b6da7 (diff)
downloadservo-240ac7cfe2c5ce87a87ce1bf38d7a62a3c32aaa2.tar.gz
servo-240ac7cfe2c5ce87a87ce1bf38d7a62a3c32aaa2.zip
webgl: Validate shader type parameter to CreateShader.
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/webglrenderingcontext.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index d08a9456624..6cbba2e3c29 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -679,6 +679,13 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9
fn CreateShader(&self, shader_type: u32) -> Option<Root<WebGLShader>> {
+ match shader_type {
+ constants::VERTEX_SHADER | constants::FRAGMENT_SHADER => {},
+ _ => {
+ self.webgl_error(InvalidEnum);
+ return None;
+ }
+ }
WebGLShader::maybe_new(self.global().r(), self.ipc_renderer.clone(), shader_type)
}