poppler/SignatureHandler.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
New commits: commit 4f8c8297d7190480500cdafe52c8777202229b30 Author: Tobias Deiminger <[email protected]> Date: Mon Jan 9 21:00:06 2023 +0100 Fix segfault on wrong nssdir If SignatureHandler was used with a custom DB directory, but that directory didn't exist or contained no valid DB, NSS crashed on subsequent calls. We can prevent crashes by calling NSS_NoDB_Init (as it's already done in the default-DB case). Fixes #1331. diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc index e0579cae..f9dd6c2f 100644 --- a/poppler/SignatureHandler.cc +++ b/poppler/SignatureHandler.cc @@ -769,15 +769,15 @@ void SignatureHandler::setNSSDir(const GooString &nssDir) homeNssDb.append("/.pki/nssdb"); initSuccess = (NSS_Init(homeNssDb.c_str()) == SECSuccess); sNssDir = homeNssDb.toStr(); - if (!initSuccess) { - NSS_NoDB_Init(nullptr); - } } } if (initSuccess) { // Make sure NSS root certificates module is loaded SECMOD_AddNewModule("Root Certs", "libnssckbi.so", 0, 0); + } else { + fprintf(stderr, "NSS_Init failed: %s\n", PR_ErrorToString(PORT_GetError(), PR_LANGUAGE_I_DEFAULT)); + NSS_NoDB_Init(nullptr); } }
