diff --git a/src/value.cpp b/src/value.cpp index e02e465e..d2ef5fbd 100644 --- a/src/value.cpp +++ b/src/value.cpp @@ -411,7 +411,7 @@ namespace Exiv2 { { value_ = buf; // ensure count>0 and nul terminated # https://github.com/Exiv2/exiv2/issues/1484 - if (value_.size() == 0 || value_[value_.size()-1] != '\0') value_ += '\0'; + if (value_.size() == 0 || (value_.size() > 0 && value_[value_.size()-1] != '\0')) value_ += '\0'; return 0; } diff --git a/tests/bugfixes/github/test_issue_1484.py b/tests/bugfixes/github/test_issue_1484.py index d9a7e8e7..6a3ce1cd 100644 --- a/tests/bugfixes/github/test_issue_1484.py +++ b/tests/bugfixes/github/test_issue_1484.py @@ -9,8 +9,20 @@ class test_issue_1484(metaclass=CaseMeta): commands = [ "$exiv2 -g Copyright $filename" , "$exiv2 -M\"set Exif.Image.Copyright Ascii ''\" $filename" , "$exiv2 -g Copyright $filename" + , "$exiv2 -M\"del Exif.Image.Copyright Ascii\" $filename" + , "$exiv2 -g Copyright $filename" + , "$exiv2 -M\"set Exif.Image.Copyright\" $filename" + , "$exiv2 -g Copyright $filename" + , "$exiv2 -M\"set Exif.Image.Copyright me 2021-\" $filename" + , "$exiv2 -g Copyright $filename" ] - stdout = ["","","""Exif.Image.Copyright Ascii 1 + stdout = ["","", +"""Exif.Image.Copyright Ascii 1 +""","","","", +"""Exif.Image.Copyright Ascii 1 +""","", +"""Exif.Image.Copyright Ascii 9 me 2021- """] stderr = [""]*len(commands) - retval = [ 1,0,0] + retval = [1,0,0,0,1,0,0,0,0] + \ No newline at end of file