Merge pull request #1125 from Exiv2/fix_984_0.27

fix_984_0.27
v0.27.3
Robin Mills 5 years ago committed by GitHub
commit a0922c6a58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -347,11 +347,11 @@ int main(int argc, char* const argv[])
Jzon::Writer writer(root, Jzon::StandardFormat); Jzon::Writer writer(root, Jzon::StandardFormat);
writer.Write(); writer.Write();
std::cout << writer.GetResult() << std::endl; std::cout << writer.GetResult() << std::endl;
return 0; return EXIT_SUCCESS;
} }
catch (Exiv2::Error& e) { catch (Exiv2::Error& e) {
std::cout << "Caught Exiv2 exception '" << e.what() << "'\n"; std::cout << "Caught Exiv2 exception '" << e.what() << "'\n";
return -1; return EXIT_FAILURE;
} }
} }

Binary file not shown.

@ -0,0 +1,20 @@
import system_tests
class XMPMetaDeleteNamespace(
metaclass=system_tests.CaseMeta):
"""
Regression test for the bug described in:
https://github.com/Exiv2/exiv2/issues/984
"""
url = "https://github.com/Exiv2/exiv2/issues/984"
filename = system_tests.path(
"$data_path/issue_94_poc3.pgf"
)
commands = ["$exiv2json $filename"]
stdout = ["""Caught Exiv2 exception 'XMP Toolkit error 9: Fatal namespace map problem'
"""]
stderr = ["""Warning: Removing 54 characters from the beginning of the XMP packet
"""]
retval = [1]

@ -1128,7 +1128,7 @@ XMPMeta::DeleteNamespace ( XMP_StringPtr namespaceURI )
if ( uriPos == sNamespaceURIToPrefixMap->end() ) return; if ( uriPos == sNamespaceURIToPrefixMap->end() ) return;
XMP_StringMapPos prefixPos = sNamespacePrefixToURIMap->find ( uriPos->second ); XMP_StringMapPos prefixPos = sNamespacePrefixToURIMap->find ( uriPos->second );
XMP_Assert ( prefixPos != sNamespacePrefixToURIMap->end() ); if ( prefixPos == sNamespacePrefixToURIMap->end() ) return;
sNamespaceURIToPrefixMap->erase ( uriPos ); sNamespaceURIToPrefixMap->erase ( uriPos );
sNamespacePrefixToURIMap->erase ( prefixPos ); sNamespacePrefixToURIMap->erase ( prefixPos );

Loading…
Cancel
Save