Christian Inci : crypt32: Fix CertStrToName' s CERT_NAME_STR_NO_QUOTING_FLAG usage.

Alexandre Julliard julliard at winehq.org
Tue Apr 19 12:08:19 CDT 2011


Module: wine
Branch: master
Commit: 99f6894c6690d082a80c71673e1ab8e29793f2af
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=99f6894c6690d082a80c71673e1ab8e29793f2af

Author: Christian Inci <chris.pcguy.inci at gmail.com>
Date:   Sun Apr 17 01:22:10 2011 +0200

crypt32: Fix CertStrToName's CERT_NAME_STR_NO_QUOTING_FLAG usage.

---

 dlls/crypt32/str.c       |    6 +++---
 dlls/crypt32/tests/str.c |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c
index 24f7c55..7444575 100644
--- a/dlls/crypt32/str.c
+++ b/dlls/crypt32/str.c
@@ -971,7 +971,7 @@ static BOOL CRYPT_EncodeValue(DWORD dwCertEncodingType,
 }
 
 static BOOL CRYPT_ValueToRDN(DWORD dwCertEncodingType, PCERT_NAME_INFO info,
- PCCRYPT_OID_INFO keyOID, struct X500TokenW *value, LPCWSTR *ppszError)
+ PCCRYPT_OID_INFO keyOID, struct X500TokenW *value, DWORD dwStrType, LPCWSTR *ppszError)
 {
     BOOL ret = FALSE;
 
@@ -1005,7 +1005,7 @@ static BOOL CRYPT_ValueToRDN(DWORD dwCertEncodingType, PCERT_NAME_INFO info,
                 types = defaultTypes;
 
             /* Remove surrounding quotes */
-            if (value->start[0] == '"')
+            if (value->start[0] == '"' && !(dwStrType & CERT_NAME_STR_NO_QUOTING_FLAG))
             {
                 value->start++;
                 value->end--;
@@ -1095,7 +1095,7 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
                     {
                         str = token.end;
                         ret = CRYPT_ValueToRDN(dwCertEncodingType, &info,
-                         keyOID, &token, ppszError);
+                         keyOID, &token, dwStrType, ppszError);
                     }
                 }
             }
diff --git a/dlls/crypt32/tests/str.c b/dlls/crypt32/tests/str.c
index 4d69e5c..cbfdf4d 100644
--- a/dlls/crypt32/tests/str.c
+++ b/dlls/crypt32/tests/str.c
@@ -828,7 +828,7 @@ static void test_CertStrToNameA(void)
                  "Expected ERROR_SUCCESS, got %08x\n", GetLastError());
     ret = pCertStrToNameA(X509_ASN_ENCODING, "CN=\"abc\"", CERT_NAME_STR_NO_QUOTING_FLAG, NULL, buf,
                           &size, NULL);
-    todo_wine ok(!ret && GetLastError() == ERROR_MORE_DATA,
+    ok(!ret && GetLastError() == ERROR_MORE_DATA,
                  "Expected ERROR_MORE_DATA, got %08x\n", GetLastError());
     for (i = 0; i < sizeof(namesA) / sizeof(namesA[0]); i++)
     {




More information about the wine-cvs mailing list