From e2c90271b152af30c18674bef5e93e742b90097e Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Sun, 13 Dec 2009 18:32:53 -0500 Subject: [PATCH] Protect against division by zero from faulty exif data. Bug: 8761 --- framework/Image/lib/Horde/Image/Exif.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/framework/Image/lib/Horde/Image/Exif.php b/framework/Image/lib/Horde/Image/Exif.php index 2370c33e4..4022725cc 100644 --- a/framework/Image/lib/Horde/Image/Exif.php +++ b/framework/Image/lib/Horde/Image/Exif.php @@ -298,6 +298,9 @@ class Horde_Image_Exif case 'ExposureTime': if (strpos($data, '/') !== false) { list($n, $d) = explode('/', $data, 2); + if ($d == 0) { + return; + } $data = $n / $d; } return self::_formatExposure($data); @@ -305,6 +308,9 @@ class Horde_Image_Exif case 'ShutterSpeedValue': if (strpos($data, '/') !== false) { list($n, $d) = explode('/', $data, 2); + if ($d == 0) { + return; + } $data = $n / $d; } $data = exp($data * log(2)); @@ -317,6 +323,9 @@ class Horde_Image_Exif case 'MaxApertureValue': if (strpos($data, '/') !== false) { list($n, $d) = explode('/', $data, 2); + if ($d == 0) { + return; + } $data = $n / $d; $data = exp(($data * log(2)) / 2); @@ -328,6 +337,9 @@ class Horde_Image_Exif case 'FocalLength': if (strpos($data, '/') !== false) { list($n, $d) = explode('/', $data, 2); + if ($d == 0) { + return; + } return sprintf(_("%d mm"), round($n / $d)); } return sprintf(_("%d mm"), $data); -- 2.11.0