From fd4ddeb14ed0f7548158680179df9f5a40902599 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 27 Apr 2015 17:26:59 -0500 Subject: [PATCH] #5314 Prevent ZeroDivisionError in exif.py --- mediagoblin/tools/exif.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mediagoblin/tools/exif.py b/mediagoblin/tools/exif.py index ec83f43c..fafd987d 100644 --- a/mediagoblin/tools/exif.py +++ b/mediagoblin/tools/exif.py @@ -142,6 +142,11 @@ def get_gps_data(tags): """ Processes EXIF data returned by EXIF.py """ + def safe_gps_ratio_divide(ratio): + if ratio.den == 0: + return 0.0 + return float(ratio.num) / float(ratio.den) + gps_data = {} if not 'Image GPSInfo' in tags: @@ -155,9 +160,9 @@ def get_gps_data(tags): for key, dat in six.iteritems(dms_data): gps_data[key] = ( lambda v: - float(v[0].num) / float(v[0].den) \ - + (float(v[1].num) / float(v[1].den) / 60) \ - + (float(v[2].num) / float(v[2].den) / (60 * 60)) + safe_gps_ratio_divide(v[0]) \ + + (safe_gps_ratio_divide(v[1]) / 60) \ + + (safe_gps_ratio_divide(v[2]) / (60 * 60)) )(dat.values) if tags['GPS GPSLatitudeRef'].values == 'S': -- 2.11.4.GIT