capi_cert_get_fname: check for NULL after allocating wfname
[openssl.git] / engines / e_capi.c
index d4221cbae3f24e6a18a38f5ea4db7815e7cc71d6..edcebf1a3f1cd5a60a0fea75735f784716f460eb 100644 (file)
@@ -1155,6 +1155,8 @@ static int capi_get_provname(CAPI_CTX *ctx, LPSTR *pname, DWORD *ptype, DWORD id
        if (!CryptEnumProviders(idx, NULL, 0, ptype, name, &len))
                {
                err = GetLastError();
+               if (sizeof(TCHAR) == sizeof(char))
+                       OPENSSL_free(name);
                if (err == ERROR_NO_MORE_ITEMS)
                        return 2;
                CAPIerr(CAPI_F_CAPI_GET_PROVNAME, CAPI_R_CRYPTENUMPROVIDERS_ERROR);
@@ -1331,6 +1333,8 @@ char * capi_cert_get_fname(CAPI_CTX *ctx, PCCERT_CONTEXT cert)
        if (!CertGetCertificateContextProperty(cert, CERT_FRIENDLY_NAME_PROP_ID, NULL, &dlen))
                return NULL;
        wfname = OPENSSL_malloc(dlen);
+       if (wfname == NULL)
+               return NULL;
        if (CertGetCertificateContextProperty(cert, CERT_FRIENDLY_NAME_PROP_ID, wfname, &dlen))
                {
                char *fname = wide_to_asc(wfname);