diff --git a/backend/app/utils/images.py b/backend/app/utils/images.py index 59b46c663..f0db1455f 100644 --- a/backend/app/utils/images.py +++ b/backend/app/utils/images.py @@ -374,11 +374,15 @@ def _convert_to_degrees(value): """Converts a GPS coordinate value from DMS to decimal degrees.""" def to_float(v): - return ( - float(v.numerator) / float(v.denominator) - if hasattr(v, "numerator") - else float(v) - ) + if hasattr(v, "numerator"): + denominator = float(v.denominator) + + if denominator == 0: + raise ValueError("Invalid EXIF GPS value: denominator is zero") + + return float(v.numerator) / denominator + + return float(v) d, m, s = (to_float(v) for v in value[:3]) return d + (m / 60.0) + (s / 3600.0)