xmlsecurity OOXML export: don't attempt to sign other signatures
For one, MSO doesn't do that either by default. For another, this would currently result in a io::IOException, because: - the root storage is opened read-write, to be able to add the signature - then _xmlsignatures/newsig is opened read-write to be able to write the signature - opening _xmlsignatures/something as read-only still opens the _xmlsignatures storage as read-write -> boom, we tried to open the same sub-storage read-write two times, OStorage::openStorageElement() detects that Change-Id: I2b90dc044bcfb835df4f19a339a0447e69f42975
This commit is contained in:
@@ -993,7 +993,9 @@ static bool lcl_isOOXMLBlacklist(const OUString& rStreamName)
|
|||||||
{
|
{
|
||||||
OUStringLiteral("/%5BContent_Types%5D.xml"),
|
OUStringLiteral("/%5BContent_Types%5D.xml"),
|
||||||
OUStringLiteral("/docProps/app.xml"),
|
OUStringLiteral("/docProps/app.xml"),
|
||||||
OUStringLiteral("/docProps/core.xml")
|
OUStringLiteral("/docProps/core.xml"),
|
||||||
|
// Don't attempt to sign other signatures for now.
|
||||||
|
OUStringLiteral("/_xmlsignatures")
|
||||||
};
|
};
|
||||||
// Just check the prefix, as we don't care about the content type part of the stream name.
|
// Just check the prefix, as we don't care about the content type part of the stream name.
|
||||||
return std::find_if(vBlacklist.begin(), vBlacklist.end(), [&](const OUStringLiteral& rLiteral) { return rStreamName.startsWith(rLiteral); }) != vBlacklist.end();
|
return std::find_if(vBlacklist.begin(), vBlacklist.end(), [&](const OUStringLiteral& rLiteral) { return rStreamName.startsWith(rLiteral); }) != vBlacklist.end();
|
||||||
|
Reference in New Issue
Block a user