Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0eab8214 authored by Mathias Agopian's avatar Mathias Agopian
Browse files

fix [4026375] SensorManager quaternion functions can call sqrt with a negative number

Just make sure to clamp the argument to zero.

Bug: 4026375
Change-Id: I00c5f6c83659a290d5e1e191a1c8d25ec06834c2
parent c5f7f582
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2051,8 +2051,8 @@ public class SensorManager
        if (rv.length == 4) {
            Q[0] = rv[3];
        } else {
            //In this case, the w component of the quaternion is known to be a positive number
            Q[0] = (float)Math.sqrt(1 - rv[0]*rv[0] - rv[1]*rv[1] - rv[2]*rv[2]);
            Q[0] = 1 - rv[0]*rv[0] - rv[1]*rv[1] - rv[2]*rv[2];
            Q[0] = (Q[0] > 0) ? (float)Math.sqrt(Q[0]) : 0;
        }
        Q[1] = rv[0];
        Q[2] = rv[1];