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());
