Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added RELATED to the SaveString function of ContactDataObject
[xestiaab/.git] / source / carddav / carddav.cpp
index 5276cb7..52ae03a 100644 (file)
@@ -60,9 +60,14 @@ size_t CardDAV::WritebackFunc(char *ptr, size_t size, size_t nmemb, wxString *st
        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
@@ -524,6 +529,14 @@ void CardDAV::SetConnectionObject(CURL *ConnectionObjectIn){
 \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
@@ -532,6 +545,15 @@ PCCERT_CONTEXT CardDAV::GetCertificateContextPointer(){
 \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
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy