utils/pdfsig.cc |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit fa00b3fbbd62c5b6b5383d9997a9d5c30827b386
Author: Sune Vuorela <s...@vuorela.dk>
Date:   Mon Jun 5 11:09:09 2023 +0200

    Fix cornercase crash in weird pdfsig setups
    
    This fixes a potential crash in setups where at least one cryptographic
    signature backend is compiled in, but none is functional.

diff --git a/utils/pdfsig.cc b/utils/pdfsig.cc
index b78169d8..0baf0d09 100644
--- a/utils/pdfsig.cc
+++ b/utils/pdfsig.cc
@@ -202,7 +202,13 @@ static std::vector<std::unique_ptr<X509CertificateInfo>> 
getAvailableSigningCert
         }
     };
     NSSSignatureConfiguration::setNSSPasswordCallback(passwordCallback);
-    std::vector<std::unique_ptr<X509CertificateInfo>> vCerts = 
CryptoSign::Factory::createActive()->getAvailableSigningCertificates();
+    auto backend = CryptoSign::Factory::createActive();
+    if (!backend) {
+        *error = true;
+        printf("No backends for cryptographic signatures available");
+        return {};
+    }
+    std::vector<std::unique_ptr<X509CertificateInfo>> vCerts = 
backend->getAvailableSigningCertificates();
     NSSSignatureConfiguration::setNSSPasswordCallback({});
     if (passwordNeeded) {
         *error = true;

Reply via email to