aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xrrigidtransform.rs
diff options
context:
space:
mode:
authorDaniel Adams <70986246+msub2@users.noreply.github.com>2024-09-05 03:39:27 +0000
committerGitHub <noreply@github.com>2024-09-05 03:39:27 +0000
commit75c7712905c522f604a454dcb1c18b8e3f163d3b (patch)
treeab9db26cd0ca77a973ba1ae5f68a7c2f25fa3ef8 /components/script/dom/xrrigidtransform.rs
parentaadc212b95cdef2a25475f025aa7fab659dde646 (diff)
downloadservo-75c7712905c522f604a454dcb1c18b8e3f163d3b.tar.gz
servo-75c7712905c522f604a454dcb1c18b8e3f163d3b.zip
webxr: Add some missing internal checks/validation (#33318)
* Ensure depthFar is non-negative Signed-off-by: Daniel Adams <msub2official@gmail.com> * Properly append default features in requestSession Signed-off-by: Daniel Adams <msub2official@gmail.com> * Ensure XRRigidTransform init members have finite values Signed-off-by: Daniel Adams <msub2official@gmail.com> --------- Signed-off-by: Daniel Adams <msub2official@gmail.com>
Diffstat (limited to 'components/script/dom/xrrigidtransform.rs')
-rw-r--r--components/script/dom/xrrigidtransform.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/components/script/dom/xrrigidtransform.rs b/components/script/dom/xrrigidtransform.rs
index a90121ee424..c1b2aafe580 100644
--- a/components/script/dom/xrrigidtransform.rs
+++ b/components/script/dom/xrrigidtransform.rs
@@ -83,6 +83,26 @@ impl XRRigidTransform {
)));
}
+ if !position.x.is_finite() ||
+ !position.y.is_finite() ||
+ !position.z.is_finite() ||
+ !position.w.is_finite()
+ {
+ return Err(Error::Type(
+ "Position must not contain non-finite values".into(),
+ ));
+ }
+
+ if !orientation.x.is_finite() ||
+ !orientation.y.is_finite() ||
+ !orientation.z.is_finite() ||
+ !orientation.w.is_finite()
+ {
+ return Err(Error::Type(
+ "Orientation must not contain non-finite values".into(),
+ ));
+ }
+
let translate = Vector3D::new(position.x as f32, position.y as f32, position.z as f32);
let rotate = Rotation3D::unit_quaternion(
orientation.x as f32,