summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSune Vuorela <sune@vuorela.dk>2023-06-05 11:09:09 +0200
committerSune Vuorela <sune@vuorela.dk>2023-06-05 11:09:13 +0200
commitfa00b3fbbd62c5b6b5383d9997a9d5c30827b386 (patch)
treeb45197ac6e7e48a8e4c2ddd545d7d06ace8989df
parentc002bee1f2010d13c85a46e6816920ecdccb3015 (diff)
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.
-rw-r--r--utils/pdfsig.cc8
1 files changed, 7 insertions, 1 deletions
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;