From ef7cda722c17d5c3df9ac1f9166f17ec4ab89d32 Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang@gmail.com>
Date: Tue, 8 Sep 2009 21:56:11 -0700
Subject: [PATCH] crypt32: Further simplify CertGetNameStringW.

---
 dlls/crypt32/str.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c
index ab8b9471ca8..6e134263029 100644
--- a/dlls/crypt32/str.c
+++ b/dlls/crypt32/str.c
@@ -995,21 +995,23 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
          szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME,
          szOID_RSA_emailAddr };
         CERT_NAME_INFO *nameInfo = NULL;
-        PCERT_RDN_ATTR nameAttr = NULL;
         DWORD bytes = 0, i;
 
         if (CryptDecodeObjectEx(pCertContext->dwCertEncodingType, X509_NAME,
          name->pbData, name->cbData, CRYPT_DECODE_ALLOC_FLAG, NULL, &nameInfo,
          &bytes))
         {
+            PCERT_RDN_ATTR nameAttr = NULL;
+
             for (i = 0; !nameAttr && i < sizeof(simpleAttributeOIDs) /
              sizeof(simpleAttributeOIDs[0]); i++)
                 nameAttr = CertFindRDNAttr(simpleAttributeOIDs[i], nameInfo);
+            if (nameAttr)
+                ret = CertRDNValueToStrW(nameAttr->dwValueType,
+                 &nameAttr->Value, pszNameString, cchNameString);
+            LocalFree(nameInfo);
         }
-        if (nameAttr)
-            ret = CertRDNValueToStrW(nameAttr->dwValueType, &nameAttr->Value,
-             pszNameString, cchNameString);
-        else
+        if (!ret)
         {
             CERT_ALT_NAME_INFO *altInfo;
             PCERT_ALT_NAME_ENTRY entry = cert_find_alt_name_entry(pCertContext,
@@ -1035,8 +1037,6 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
                 LocalFree(altInfo);
             }
         }
-        if (nameInfo)
-            LocalFree(nameInfo);
         break;
     }
     case CERT_NAME_FRIENDLY_DISPLAY_TYPE:
-- 
GitLab