[PATCH 4/5] advapi32/tests: Check all CryptReleaseContext() calls.

Serge Gautherie winehq-git_serge_180711 at gautherie.fr
Thu Mar 12 00:45:59 CDT 2020


Signed-off-by: Serge Gautherie <winehq-git_serge_180711 at gautherie.fr>
---
 dlls/advapi32/tests/crypt.c | 62 ++++++++++++++++++++++++++++++++-------------
 1 file changed, 44 insertions(+), 18 deletions(-)

diff --git a/dlls/advapi32/tests/crypt.c b/dlls/advapi32/tests/crypt.c
index 9dffc53..8d05396 100644
--- a/dlls/advapi32/tests/crypt.c
+++ b/dlls/advapi32/tests/crypt.c
@@ -64,25 +64,30 @@ static void init_function_pointers(void)
 static void init_environment(void)
 {
     HCRYPTPROV hProv;
+    BOOL ret;
 
     /* Ensure that container "wine_test_keyset" does exist */
     if (!CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0))
     {
         CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_NEWKEYSET);
     }
-    CryptReleaseContext(hProv, 0);
+    ret = CryptReleaseContext(hProv, 0);
+    ok(ret, "got %u\n", GetLastError());
 
     /* Ensure that container "wine_test_keyset" does exist in default PROV_RSA_FULL type provider */
     if (!CryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, 0))
     {
         CryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET);
     }
-    CryptReleaseContext(hProv, 0);
+    ret = CryptReleaseContext(hProv, 0);
+    ok(ret, "got %u\n", GetLastError());
 
     /* Ensure that container "wine_test_bad_keyset" does not exist. */
     if (CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, 0))
     {
-        CryptReleaseContext(hProv, 0);
+        ret = CryptReleaseContext(hProv, 0);
+        ok(ret, "got %u\n", GetLastError());
+
         CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET);
     }
 }
@@ -90,25 +95,32 @@ static void init_environment(void)
 static void clean_up_environment(void)
 {
     HCRYPTPROV hProv;
+    BOOL ret;
 
     /* Remove container "wine_test_keyset" */
     if (CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0))
     {
-        CryptReleaseContext(hProv, 0);
+        ret = CryptReleaseContext(hProv, 0);
+        ok(ret, "got %u\n", GetLastError());
+
         CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET);
     }
 
     /* Remove container "wine_test_keyset" from default PROV_RSA_FULL type provider */
     if (CryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, 0))
     {
-        CryptReleaseContext(hProv, 0);
+        ret = CryptReleaseContext(hProv, 0);
+        ok(ret, "got %u\n", GetLastError());
+
         CryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, CRYPT_DELETEKEYSET);
     }
 
     /* Remove container "wine_test_bad_keyset" */
     if (CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, 0))
     {
-        CryptReleaseContext(hProv, 0);
+        ret = CryptReleaseContext(hProv, 0);
+        ok(ret, "got %u\n", GetLastError());
+
         CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET);
     }
 }
@@ -159,8 +171,11 @@ if (0)
 		      GLE == NTE_FAIL                 ||
 		      GLE == ERROR_NOT_LOGGED_ON), "%d/%d\n", result, GLE);
 
-	if (hProv) 
-		CryptReleaseContext(hProv, 0);
+    if (hProv)
+    {
+        result = CryptReleaseContext(hProv, 0);
+        ok(result, "got %u\n", GetLastError());
+    }
 
 	/* Try again, witch an empty ("\0") szProvider parameter */
 	hProv = 0;
@@ -173,8 +188,11 @@ if (0)
 		      GLE == NTE_FAIL                 ||
 		      GLE == ERROR_NOT_LOGGED_ON), "%d/%d\n", result, GetLastError());
 
-	if (hProv) 
-		CryptReleaseContext(hProv, 0);
+    if (hProv)
+    {
+        result = CryptReleaseContext(hProv, 0);
+        ok(result, "got %u\n", GetLastError());
+    }
 }
 
 static void test_incorrect_api_usage(void)
@@ -238,11 +256,13 @@ static void test_incorrect_api_usage(void)
     if (!result) return;
 
     result = CryptReleaseContext(hProv, 0);
-    ok (result, "%d\n", GetLastError());
+    ok(result, "got %u\n", GetLastError());
     if (!result) return;
 
+    SetLastError(0xdeadbeef);
     result = CryptReleaseContext(hProv, 0);
-    ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
+    ok(!result, "CryptReleaseContext succeeded unexpectedly\n");
+    ok(GetLastError() == ERROR_INVALID_PARAMETER, "got %u\n", GetLastError());
 
     result = pCryptGenRandom(hProv, 1, &temp);
     ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
@@ -426,7 +446,9 @@ static void test_verify_sig(void)
 	 "Expected NTE_BAD_SIGNATURE, got %08x\n", GetLastError());
 	CryptDestroyKey(key);
 	CryptDestroyHash(hash);
-	CryptReleaseContext(prov, 0);
+
+    ret = CryptReleaseContext(prov, 0);
+    ok(ret, "got %u\n", GetLastError());
 }
 
 static BOOL FindProvRegVals(DWORD dwIndex, DWORD *pdwProvType, LPSTR *pszProvName, 
@@ -938,7 +960,8 @@ static void test_machine_guid(void)
    ret = CryptAcquireContextA(&hCryptProv, szKeySet, NULL, PROV_RSA_FULL, 0);
    ok(ret || broken(!ret && GetLastError() == NTE_KEYSET_ENTRY_BAD /* NT4 */),
       "CryptAcquireContextA failed: %08x\n", GetLastError());
-   CryptReleaseContext(hCryptProv, 0);
+   ret = CryptReleaseContext(hCryptProv, 0);
+   ok(ret, "got %u\n", GetLastError());
 
    if (restoreGuid)
        RegSetValueExA(key, "MachineGuid", 0, REG_SZ, (const BYTE *)originalGuid,
@@ -986,10 +1009,11 @@ static void test_rc2_keylen(void)
         ok(ret ||
            broken(!ret && GetLastError() == NTE_BAD_FLAGS),
            "CryptImportKey error %08x\n", GetLastError());
-
         if (ret)
             CryptDestroyKey(hkey);
-        CryptReleaseContext(provider, 0);
+
+        ret = CryptReleaseContext(provider, 0);
+        ok(ret, "got %u\n", GetLastError());
     }
 
     SetLastError(0xdeadbeef);
@@ -1033,7 +1057,8 @@ static void test_rc2_keylen(void)
         if (ret)
             CryptDestroyKey(hkey);
 
-        CryptReleaseContext(provider, 0);
+        ret = CryptReleaseContext(provider, 0);
+        ok(ret, "got %u\n", GetLastError());
     }
 
     key_blob.key_size = sizeof(key);
@@ -1068,7 +1093,8 @@ static void test_rc2_keylen(void)
         if (ret)
             CryptDestroyKey(hkey);
 
-        CryptReleaseContext(provider, 0);
+        ret = CryptReleaseContext(provider, 0);
+        ok(ret, "got %u\n", GetLastError());
     }
 }
 
-- 
2.10.0.windows.1




More information about the wine-devel mailing list