Merge pull request #2321 from kevinbackhouse/fix-issue-2320

Fix integer overflow in printDegrees
main
Kevin Backhouse 3 years ago committed by GitHub
commit 3ac7608282
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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<int32_t>::max() / 60)) {
sec.first = 60 * rem;
sec.second = min.second;
} else {

Binary file not shown.

@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
from system_tests import CaseMeta, check_no_ASAN_UBSAN_errors
class issue_2320_printDegrees_integer_overflow(metaclass=CaseMeta):
url = "https://github.com/Exiv2/exiv2/issues/2320"
filename = "$data_path/issue_2320_poc.jpg"
commands = ["$exiv2 -q -pa $filename"]
retval = [0]
stderr = [""]
compare_stdout = check_no_ASAN_UBSAN_errors

@ -92,6 +92,7 @@ def get_valid_files(data_dir):
"issue_2160_poc.jpg",
"issue_2178_poc.jp2",
"issue_2268_poc.jp2",
"issue_2320_poc.jpg",
"issue_ghsa_583f_w9pm_99r2_poc.jp2",
"issue_ghsa_7569_phvm_vwc2_poc.jp2",
"issue_ghsa_mxw9_qx4c_6m8v_poc.jp2",

Loading…
Cancel
Save