diff options
author | Sebastian Rasmussen <sebras@gmail.com> | 2017-01-11 23:37:54 +0100 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2017-01-11 23:42:49 +0100 |
commit | 4db6507320b51e060f73f7fb0eab364e8a1fee77 (patch) | |
tree | c3fa27fc18069e2f5f6a02b690a983d56196264c | |
parent | 8bb90fc828a3400a2464a38f0ec9e592754197dd (diff) |
Check for error from NSS in SignatureHandler construct.
And cascading effects in other SignalHandler members.
Bug #99363
-rw-r--r-- | poppler/SignatureHandler.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc index a5132a48..71644e54 100644 --- a/poppler/SignatureHandler.cc +++ b/poppler/SignatureHandler.cc @@ -8,6 +8,7 @@ // Copyright 2015 André Esser <bepandre@hotmail.com> // Copyright 2015, 2016 Albert Astals Cid <aacid@kde.org> // Copyright 2015 Markus Kilås <digital@markuspage.com> +// Copyright 2017 Sebastian Rasmussen <sebras@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() |