mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Prevent use of reserved names in BindAttribLocation
This commit is contained in:
parent
b00c2740e3
commit
a67a744057
3 changed files with 11 additions and 8 deletions
|
@ -147,7 +147,7 @@ impl WebGLProgram {
|
|||
}
|
||||
|
||||
// Check if the name is reserved
|
||||
if name.starts_with("webgl") || name.starts_with("_webgl_") {
|
||||
if name.starts_with("gl_") || name.starts_with("webgl") || name.starts_with("_webgl_") {
|
||||
return Err(WebGLError::InvalidOperation);
|
||||
}
|
||||
|
||||
|
@ -185,6 +185,10 @@ impl WebGLProgram {
|
|||
}
|
||||
|
||||
// Check if the name is reserved
|
||||
if name.starts_with("gl_") {
|
||||
return Err(WebGLError::InvalidOperation);
|
||||
}
|
||||
|
||||
if name.starts_with("webgl") || name.starts_with("_webgl_") {
|
||||
return Ok(None);
|
||||
}
|
||||
|
|
|
@ -979,12 +979,10 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
|
|||
fn GetUniformLocation(&self,
|
||||
program: Option<&WebGLProgram>,
|
||||
name: DOMString) -> Option<Root<WebGLUniformLocation>> {
|
||||
if let Some(program) = program {
|
||||
handle_potential_webgl_error!(self, program.get_uniform_location(name), None)
|
||||
.map(|location| WebGLUniformLocation::new(self.global().r(), location, program.id()))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
program.and_then(|p| {
|
||||
handle_potential_webgl_error!(self, p.get_uniform_location(name), None)
|
||||
.map(|location| WebGLUniformLocation::new(self.global().r(), location, p.id()))
|
||||
})
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
[gl-bind-attrib-location-test.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[WebGL test #6: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
|
||||
expected: FAIL
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue