aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorIgor Matuszewski <Xanewok@gmail.com>2018-03-23 11:04:47 +0100
committerIgor Matuszewski <Xanewok@gmail.com>2018-03-23 19:25:19 +0100
commitcb85a95478082b81be86b66244061ff1b9fc2815 (patch)
tree2e8419c617f2bc573f07cfe2768c13cc38f856f7 /components/script
parentdaceeb400294ce157b2901f0d2effd63b9aabf27 (diff)
downloadservo-cb85a95478082b81be86b66244061ff1b9fc2815.tar.gz
servo-cb85a95478082b81be86b66244061ff1b9fc2815.zip
Fix sanity check in vertex attrib
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/webglrenderingcontext.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index d9f1893f357..3f498def960 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -3094,15 +3094,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn VertexAttrib1fv(&self, indx: u32, mut v: CustomAutoRooterGuard<Float32Array>) {
let data_vec = unsafe { v.as_slice().to_vec() };
- if data_vec.len() < 1 {
- return self.webgl_error(InvalidOperation);
- }
-
self.VertexAttrib1fv_(indx, data_vec);
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttrib1fv_(&self, indx: u32, values: Vec<f32>) {
+ if values.len() < 1 {
+ return self.webgl_error(InvalidOperation);
+ }
+
self.vertex_attrib(indx, values[0], 0f32, 0f32, 1f32);
}
@@ -3116,15 +3116,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn VertexAttrib2fv(&self, indx: u32, mut v: CustomAutoRooterGuard<Float32Array>) {
let data_vec = unsafe { v.as_slice().to_vec() };
- if data_vec.len() < 2 {
- return self.webgl_error(InvalidOperation);
- }
-
self.VertexAttrib2fv_(indx, data_vec);
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttrib2fv_(&self, indx: u32, values: Vec<f32>) {
+ if values.len() < 2 {
+ return self.webgl_error(InvalidOperation);
+ }
+
self.vertex_attrib(indx, values[0], values[1], 0f32, 1f32);
}
@@ -3138,15 +3138,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn VertexAttrib3fv(&self, indx: u32, mut v: CustomAutoRooterGuard<Float32Array>) {
let data_vec = unsafe { v.as_slice().to_vec() };
- if data_vec.len() < 3 {
- return self.webgl_error(InvalidOperation);
- }
-
self.VertexAttrib3fv_(indx, data_vec);
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttrib3fv_(&self, indx: u32, values: Vec<f32>) {
+ if values.len() < 3 {
+ return self.webgl_error(InvalidOperation);
+ }
+
self.vertex_attrib(indx, values[0], values[1], values[2], 1f32);
}
@@ -3160,15 +3160,15 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
fn VertexAttrib4fv(&self, indx: u32, mut v: CustomAutoRooterGuard<Float32Array>) {
let data_vec = unsafe { v.as_slice().to_vec() };
- if data_vec.len() < 4 {
- return self.webgl_error(InvalidOperation);
- }
-
self.VertexAttrib4fv_(indx, data_vec);
}
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn VertexAttrib4fv_(&self, indx: u32, values: Vec<f32>) {
+ if values.len() < 4 {
+ return self.webgl_error(InvalidOperation);
+ }
+
self.vertex_attrib(indx, values[0], values[1], values[2], values[3]);
}