From d8140261364f3f5f533bed852012a311acd9b7ee Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Tue, 1 Mar 2016 19:20:47 +0000 Subject: [PATCH] [CRYPT32] Sync with Wine Staging 1.9.4. CORE-10912 svn path=/trunk/; revision=70851 --- reactos/dll/win32/crypt32/chain.c | 3 +++ reactos/dll/win32/crypt32/str.c | 16 ++++++---------- reactos/media/doc/README.WINE | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/reactos/dll/win32/crypt32/chain.c b/reactos/dll/win32/crypt32/chain.c index fdaf2fbe4c1..b64f121faee 100644 --- a/reactos/dll/win32/crypt32/chain.c +++ b/reactos/dll/win32/crypt32/chain.c @@ -2286,7 +2286,10 @@ static BOOL CRYPT_BuildCandidateChainFromCert(CertificateChainEngine *engine, chain->context.dwRevocationFreshnessTime = 0; } else + { + CRYPT_FreeSimpleChain(simpleChain); ret = FALSE; + } *ppChain = chain; } return ret; diff --git a/reactos/dll/win32/crypt32/str.c b/reactos/dll/win32/crypt32/str.c index eff10eac6ac..458bd19cdf7 100644 --- a/reactos/dll/win32/crypt32/str.c +++ b/reactos/dll/win32/crypt32/str.c @@ -760,7 +760,7 @@ struct KeynameKeeper { WCHAR buf[10]; /* big enough for L"GivenName" */ LPWSTR keyName; /* usually = buf, but may be allocated */ - DWORD keyLen; + DWORD keyLen; /* full available buffer size in WCHARs */ }; static void CRYPT_InitializeKeynameKeeper(struct KeynameKeeper *keeper) @@ -786,17 +786,13 @@ static void CRYPT_KeynameKeeperFromTokenW(struct KeynameKeeper *keeper, { DWORD len = key->end - key->start; - if (len > keeper->keyLen) + if (len >= keeper->keyLen) { - if (keeper->keyName == keeper->buf) - keeper->keyName = CryptMemAlloc(len * sizeof(WCHAR)); - else - keeper->keyName = CryptMemRealloc(keeper->keyName, - len * sizeof(WCHAR)); - keeper->keyLen = len; + CRYPT_FreeKeynameKeeper( keeper ); + keeper->keyLen = len + 1; + keeper->keyName = CryptMemAlloc(keeper->keyLen * sizeof(WCHAR)); } - memcpy(keeper->keyName, key->start, (key->end - key->start) * - sizeof(WCHAR)); + memcpy(keeper->keyName, key->start, len * sizeof(WCHAR)); keeper->keyName[len] = '\0'; TRACE("Keyname is %s\n", debugstr_w(keeper->keyName)); } diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 30bd7c19992..e76a92e74c1 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -58,7 +58,7 @@ reactos/dll/win32/comctl32 # Synced to WineStaging-1.9.4 reactos/dll/win32/comdlg32 # Synced to WineStaging-1.9.4 reactos/dll/win32/compstui # Synced to WineStaging-1.7.55 reactos/dll/win32/credui # Synced to WineStaging-1.7.55 -reactos/dll/win32/crypt32 # Synced to WineStaging-1.7.55 +reactos/dll/win32/crypt32 # Synced to WineStaging-1.9.4 reactos/dll/win32/cryptdlg # Synced to WineStaging-1.7.55 reactos/dll/win32/cryptdll # Synced to WineStaging-1.7.55 reactos/dll/win32/cryptnet # Synced to WineStaging-1.7.55