Skip to content
Snippets Groups Projects
Commit ef7cda72 authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard
Browse files

crypt32: Further simplify CertGetNameStringW.

parent 4d2972c8
No related branches found
No related tags found
No related merge requests found
...@@ -995,21 +995,23 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, ...@@ -995,21 +995,23 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME, szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME,
szOID_RSA_emailAddr }; szOID_RSA_emailAddr };
CERT_NAME_INFO *nameInfo = NULL; CERT_NAME_INFO *nameInfo = NULL;
PCERT_RDN_ATTR nameAttr = NULL;
DWORD bytes = 0, i; DWORD bytes = 0, i;
if (CryptDecodeObjectEx(pCertContext->dwCertEncodingType, X509_NAME, if (CryptDecodeObjectEx(pCertContext->dwCertEncodingType, X509_NAME,
name->pbData, name->cbData, CRYPT_DECODE_ALLOC_FLAG, NULL, &nameInfo, name->pbData, name->cbData, CRYPT_DECODE_ALLOC_FLAG, NULL, &nameInfo,
&bytes)) &bytes))
{ {
PCERT_RDN_ATTR nameAttr = NULL;
for (i = 0; !nameAttr && i < sizeof(simpleAttributeOIDs) / for (i = 0; !nameAttr && i < sizeof(simpleAttributeOIDs) /
sizeof(simpleAttributeOIDs[0]); i++) sizeof(simpleAttributeOIDs[0]); i++)
nameAttr = CertFindRDNAttr(simpleAttributeOIDs[i], nameInfo); nameAttr = CertFindRDNAttr(simpleAttributeOIDs[i], nameInfo);
if (nameAttr)
ret = CertRDNValueToStrW(nameAttr->dwValueType,
&nameAttr->Value, pszNameString, cchNameString);
LocalFree(nameInfo);
} }
if (nameAttr) if (!ret)
ret = CertRDNValueToStrW(nameAttr->dwValueType, &nameAttr->Value,
pszNameString, cchNameString);
else
{ {
CERT_ALT_NAME_INFO *altInfo; CERT_ALT_NAME_INFO *altInfo;
PCERT_ALT_NAME_ENTRY entry = cert_find_alt_name_entry(pCertContext, PCERT_ALT_NAME_ENTRY entry = cert_find_alt_name_entry(pCertContext,
...@@ -1035,8 +1037,6 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, ...@@ -1035,8 +1037,6 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
LocalFree(altInfo); LocalFree(altInfo);
} }
} }
if (nameInfo)
LocalFree(nameInfo);
break; break;
} }
case CERT_NAME_FRIENDLY_DISPLAY_TYPE: case CERT_NAME_FRIENDLY_DISPLAY_TYPE:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment