[poppler] poppler/SignatureHandler.cc

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Mar 28 10:09:24 UTC 2023


 poppler/SignatureHandler.cc |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 098d2d497b3d8cbc4fdf9eb68385bfbe2ee3e711
Author: Sune Vuorela <sune at vuorela.dk>
Date:   Mon Mar 27 17:52:28 2023 +0200

    Fix crash in bad signature verification
    
    If the signature existing but too wrong for us to understand, we might
    not get the hashContext object created, so guard against that.
    
    This is fallout from 08c0766e9d.
    
    Note the SignHandler does not need the same guards; the hashContext is
    always present.

diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc
index 64ac6594..99163000 100644
--- a/poppler/SignatureHandler.cc
+++ b/poppler/SignatureHandler.cc
@@ -780,12 +780,18 @@ SignatureSignHandler::SignatureSignHandler(const std::string &certNickname, Hash
 
 HashAlgorithm SignatureVerificationHandler::getHashAlgorithm() const
 {
-    return hashContext->getHashAlgorithm();
+    if (hashContext) {
+        return hashContext->getHashAlgorithm();
+    } else {
+        return HashAlgorithm::Unknown;
+    }
 }
 
 void SignatureVerificationHandler::updateHash(unsigned char *data_block, int data_len)
 {
-    hashContext->updateHash(data_block, data_len);
+    if (hashContext) {
+        hashContext->updateHash(data_block, data_len);
+    }
 }
 
 void SignatureSignHandler::updateHash(unsigned char *data_block, int data_len)


More information about the poppler mailing list