std::string CertName;\r
\r
if (TLSInfo->internals != nullptr && TLSCode == CURLE_OK){\r
+\r
+ // Free the previous certificate data.\r
+\r
+ CertFreeCertificateContext(CertificateData);\r
+\r
PCtxtHandle SSLHandle = (PCtxtHandle)TLSInfo->internals;\r
SECURITY_STATUS GetData = QueryContextAttributes(SSLHandle, SECPKG_ATTR_REMOTE_CERT_CONTEXT, &CertificateData);\r
- //QueryContextAttributesA(TLSInfo->internals, SECPKG_);\r
+\r
}\r
\r
#endif\r
\r
PCCERT_CONTEXT CardDAV::GetCertificateContextPointer(){\r
\r
+ // Check that the PCCERT_CONTEXT has an address\r
+ // other than NULL. Return nullptr if this is the\r
+ // case.\r
+\r
+ if (CertificateData == NULL){\r
+ return NULL;\r
+ }\r
+\r
// Get the certificate data.\r
\r
return CertificateData;\r
\r
CERT_CONTEXT CardDAV::GetCertificateContext(){\r
\r
+ // Check that the PCCERT_CONTEXT has an address\r
+ // other than NULL. Return nullptr if this is the\r
+ // case.\r
+\r
+ if (CertificateData == NULL){\r
+ CERT_CONTEXT EmptyCertificateData = { 0 };\r
+ return EmptyCertificateData;\r
+ }\r
+\r
// Get the certificate data.\r
\r
return *CertificateData;\r