ADEPT remove : Don't decrypt XRef stream if there is one

This commit is contained in:
Grégory Soutadé 2022-03-12 23:02:55 +01:00
parent 432eb6f6cb
commit 9b946a62b4
3 changed files with 9 additions and 2 deletions

View File

@ -40,7 +40,7 @@
#define ACS_SERVER "http://adeactivate.adobe.com/adept"
#endif
#define LIBGOUROU_VERSION "0.5.2"
#define LIBGOUROU_VERSION "0.5.3"
namespace gourou
{

View File

@ -1151,10 +1151,17 @@ namespace gourou
uPDFParser::Object* object = *it;
if (object->objectId() == ebxId)
{
// object->deleteKey("Filter");
continue;
}
// Should not decrypt XRef stream
if (object->hasKey("Type") && (*object)["Type"]->str() == "/XRef")
{
GOUROU_LOG(DEBUG, "XRef stream at " << object->offset());
continue;
}
GOUROU_LOG(DEBUG, "Obj " << object->objectId());

View File

@ -532,7 +532,7 @@ void DRMProcessorClientImpl::inflate(gourou::ByteArray& data, gourou::ByteArray&
{
// Real error
if (ret == Z_BUF_ERROR && infstream.avail_out == (uInt)dataSize)
EXCEPTION(gourou::CLIENT_ZIP_ERROR, "Inflate error, code " << zError(ret) << ", msg " << infstream.msg);
break;
result.append(buffer, dataSize-infstream.avail_out);