Christian Inci : crypt32: Fix CertStrToName' s CERT_NAME_STR_NO_QUOTING_FLAG usage.
Module: wine Branch: master Commit: 99f6894c6690d082a80c71673e1ab8e29793f2af URL: http://source.winehq.org/git/wine.git/?a=commit;h=99f6894c6690d082a80c71673e... Author: Christian Inci <chris.pcguy.inci(a)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++) {
participants (1)
-
Alexandre Julliard