[CRYPT32] Sync with Wine Staging 1.9.4. CORE-10912
authorAmine Khaldi <amine.khaldi@reactos.org>
Tue, 1 Mar 2016 19:20:47 +0000 (19:20 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Tue, 1 Mar 2016 19:20:47 +0000 (19:20 +0000)
svn path=/trunk/; revision=70851

reactos/dll/win32/crypt32/chain.c
reactos/dll/win32/crypt32/str.c
reactos/media/doc/README.WINE

index fdaf2fb..b64f121 100644 (file)
@@ -2286,7 +2286,10 @@ static BOOL CRYPT_BuildCandidateChainFromCert(CertificateChainEngine *engine,
             chain->context.dwRevocationFreshnessTime = 0;
         }
         else
+        {
+            CRYPT_FreeSimpleChain(simpleChain);
             ret = FALSE;
+        }
         *ppChain = chain;
     }
     return ret;
index eff10ea..458bd19 100644 (file)
@@ -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));
 }
index 30bd7c1..e76a92e 100644 (file)
@@ -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