poppler/Form.cc | 6 +----- poppler/SignatureHandler.cc | 10 +++++----- poppler/SignatureHandler.h | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-)
New commits: commit ef18170e6ec6e117df4d24497b16dd8cc8b42ca3 Author: Marek Kasik <[email protected]> Date: Tue Dec 7 11:46:13 2021 +0000 SignatureHandler: Return std::string in getSignerName() diff --git a/poppler/Form.cc b/poppler/Form.cc index 921a89e6..cb6f62f8 100644 --- a/poppler/Form.cc +++ b/poppler/Form.cc @@ -2191,14 +2191,10 @@ SignatureInfo *FormFieldSignature::validateSignature(bool doVerifyCert, bool for hashSignedDataBlock(&signature_handler, len); } - char *signerName = signature_handler.getSignerName(); - - signature_info->setSignerName(signerName); + signature_info->setSignerName(signature_handler.getSignerName().c_str()); signature_info->setSubjectDN(signature_handler.getSignerSubjectDN()); signature_info->setHashAlgorithm(signature_handler.getHashAlgorithm()); - free(signerName); - if (!signature_info->isSubfilterSupported()) { error(errUnimplemented, 0, "Unable to validate this type of signature"); return signature_info; diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc index f5d4c284..41e89970 100644 --- a/poppler/SignatureHandler.cc +++ b/poppler/SignatureHandler.cc @@ -501,21 +501,21 @@ SECOidTag SignatureHandler::getHashOidTag(const char *digestName) return tag; } -char *SignatureHandler::getSignerName() +std::string SignatureHandler::getSignerName() { - char *commonName, *name; + char *commonName; if (!CMSSignerInfo || !NSS_IsInitialized()) - return nullptr; + return {}; if (!signing_cert) signing_cert = NSS_CMSSignerInfo_GetSigningCertificate(CMSSignerInfo, CERT_GetDefaultCertDB()); if (!signing_cert) - return nullptr; + return {}; commonName = CERT_GetCommonName(&signing_cert->subject); - name = strdup(commonName); + std::string name(commonName); PORT_Free(commonName); return name; diff --git a/poppler/SignatureHandler.h b/poppler/SignatureHandler.h index b4a8b60b..db416b79 100644 --- a/poppler/SignatureHandler.h +++ b/poppler/SignatureHandler.h @@ -48,7 +48,7 @@ public: SignatureHandler(const char *certNickname, SECOidTag digestAlgTag); ~SignatureHandler(); time_t getSigningTime(); - char *getSignerName(); + std::string getSignerName(); const char *getSignerSubjectDN(); HASH_HashType getHashAlgorithm(); void setSignature(unsigned char *, int);
