summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksandr Shcherbina <o.shcherbina@samsung.com>2016-01-13 14:04:34 +0100
committerStefan Schmidt <stefan@osg.samsung.com>2016-01-13 14:04:35 +0100
commit93df8720f9312206b637cf043a5747e93ed81541 (patch)
tree347a8b968224d731a59b6ce94ff08e8e9fbec632
parent9e00bd01a138c40da89b7d90fc16a9205f660122 (diff)
downloadefl-93df8720f9312206b637cf043a5747e93ed81541.tar.gz
eina: Fix possible wrong value due to null in determinant of matrix
Reviewers: cedric, Hermet Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D3563
-rw-r--r--src/lib/eina/eina_matrix.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/eina/eina_matrix.c b/src/lib/eina/eina_matrix.c
index 13362f95ee..d7aeebf50a 100644
--- a/src/lib/eina/eina_matrix.c
+++ b/src/lib/eina/eina_matrix.c
@@ -1164,7 +1164,9 @@ eina_normal3_matrix_get(Eina_Matrix3 *out, const Eina_Matrix4 *m)
double i = MATRIX_ZZ(m);
det = a * e * i + b * f * g + c * d * h - g * e * c - h * f * a - i * d * b;
- det = 1.0 / det;
+
+ if (fabs(det) >= DBL_EPSILON) det = 1.0 / det;
+ else det = 0.0;
MATRIX_XX(out) = (e * i - f * h) * det;
MATRIX_XY(out) = (h * c - i * b) * det;