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

New commits:
commit 373bad5cd0a8996beed271228e9131833a7ba8ce
Author: Albert Astals Cid <[email protected]>
Date:   Wed Feb 2 20:22:21 2022 +0100

    Be more resiliant against env variables not being set
    
    getenv can return null so don't crash (constructing a std::string from
    null is not good) if that happens

diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc
index 22a620c6..3032623a 100644
--- a/poppler/SignatureHandler.cc
+++ b/poppler/SignatureHandler.cc
@@ -669,9 +669,17 @@ std::unique_ptr<X509CertificateInfo> 
SignatureHandler::getCertificateInfo() cons
 static std::optional<std::string> getDefaultFirefoxCertDB()
 {
 #ifdef _WIN32
-    const std::string firefoxPath = std::string(getenv("USERPROFILE")) + 
"/AppData/Roaming/Mozilla/Firefox/Profiles/";
+    const char *env = getenv("USERPROFILE");
+    if (!env) {
+        return {};
+    }
+    const std::string firefoxPath = std::string(env) + 
"/AppData/Roaming/Mozilla/Firefox/Profiles/";
 #else
-    const std::string firefoxPath = std::string(getenv("HOME")) + 
"/.mozilla/firefox/";
+    const char *env = getenv("HOME");
+    if (!env) {
+        return {};
+    }
+    const std::string firefoxPath = std::string(env) + "/.mozilla/firefox/";
 #endif
 
     GDir firefoxDir(firefoxPath.c_str());

Reply via email to