[poppler] poppler/SignatureHandler.cc
Albert Astals Cid
aacid at kemper.freedesktop.org
Wed Jan 11 22:43:14 UTC 2017
poppler/SignatureHandler.cc | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
New commits:
commit 4db6507320b51e060f73f7fb0eab364e8a1fee77
Author: Sebastian Rasmussen <sebras at gmail.com>
Date: Wed Jan 11 23:37:54 2017 +0100
Check for error from NSS in SignatureHandler construct.
And cascading effects in other SignalHandler members.
Bug #99363
diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc
index a5132a4..71644e5 100644
--- a/poppler/SignatureHandler.cc
+++ b/poppler/SignatureHandler.cc
@@ -8,6 +8,7 @@
// Copyright 2015 André Esser <bepandre at hotmail.com>
// Copyright 2015, 2016 Albert Astals Cid <aacid at kde.org>
// Copyright 2015 Markus Kilås <digital at markuspage.com>
+// Copyright 2017 Sebastian Rasmussen <sebras at gmail.com>
//
//========================================================================
@@ -105,7 +106,8 @@ void SignatureHandler::init_nss()
SignatureHandler::SignatureHandler(unsigned char *p7, int p7_length)
- : CMSMessage(NULL),
+ : hash_context(NULL),
+ CMSMessage(NULL),
CMSSignedData(NULL),
CMSSignerInfo(NULL),
temp_certs(NULL)
@@ -115,8 +117,10 @@ SignatureHandler::SignatureHandler(unsigned char *p7, int p7_length)
CMSitem.len = p7_length;
CMSMessage = CMS_MessageCreate(&CMSitem);
CMSSignedData = CMS_SignedDataCreate(CMSMessage);
- CMSSignerInfo = CMS_SignerInfoCreate(CMSSignedData);
- hash_context = initHashContext();
+ if (CMSSignedData) {
+ CMSSignerInfo = CMS_SignerInfoCreate(CMSSignedData);
+ hash_context = initHashContext();
+ }
}
HASHContext * SignatureHandler::initHashContext()
@@ -131,7 +135,9 @@ HASHContext * SignatureHandler::initHashContext()
void SignatureHandler::updateHash(unsigned char * data_block, int data_len)
{
- HASH_Update(hash_context, data_block, data_len);
+ if (hash_context) {
+ HASH_Update(hash_context, data_block, data_len);
+ }
}
SignatureHandler::~SignatureHandler()
More information about the poppler
mailing list