Skip to content

Commit

Permalink
Merge pull request #757 from Exiv2/fix_756_0.27
Browse files Browse the repository at this point in the history
Fix #756 for 0.27
  • Loading branch information
D4N authored Mar 26, 2019
2 parents 8db17df + 7bd929d commit b148cfa
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/nikonmn_int.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -370,8 +370,12 @@ namespace Exiv2 {
const ExifData*)
{
if (value.count() >= 1) {
unsigned long focusArea = value.toLong(0);
os << nikonFocusarea[focusArea] ;
const unsigned long focusArea = value.toLong(0);
if (focusArea >= EXV_COUNTOF(nikonFocusarea)) {
os << "Invalid value";
} else {
os << nikonFocusarea[focusArea];
}
}
if (value.count() >= 2) {
os << "; ";
Expand Down
Binary file added test/data/NikonMakerNotePrint0x088_overread
Binary file not shown.
20 changes: 20 additions & 0 deletions tests/bugfixes/github/test_issue_756.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import system_tests


class BufferOverReadInNikon1MakerNotePrint0x0088(
metaclass=system_tests.CaseMeta):

url = "https://github.com/Exiv2/exiv2/issues/756"

filename = system_tests.path(
"$data_path/NikonMakerNotePrint0x088_overread"
)
commands = ["$exiv2 -pt --grep AFFocusPos $filename"]
stdout = [
"""Exif.Nikon1.AFFocusPos Undefined 4 Invalid value; Center
"""
]
stderr = [""]
retval = [0]

compare_stderr = system_tests.check_no_ASAN_UBSAN_errors

0 comments on commit b148cfa

Please sign in to comment.