From fe4f56d97984ee6840ec87999f6bb4f0822e80d5 Mon Sep 17 00:00:00 2001 From: Kevin Backhouse Date: Mon, 8 Aug 2022 23:48:16 -0400 Subject: [PATCH] Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49894 Check that `60 * rem` won't overflow. --- src/tags_int.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tags_int.cpp b/src/tags_int.cpp index a81a1ad3..aa1d1de3 100644 --- a/src/tags_int.cpp +++ b/src/tags_int.cpp @@ -2519,7 +2519,7 @@ std::ostream& printDegrees(std::ostream& os, const Value& value, const ExifData* const int32_t mm = min.first / min.second; const int32_t rem = min.first % min.second; if ((min.second > 1) && (rem > 0)) { - if ((sec.first == 0) && (sec.second == 1)) { + if ((sec.first == 0) && (sec.second == 1) && (rem <= std::numeric_limits::max() / 60)) { sec.first = 60 * rem; sec.second = min.second; } else {