[PATCH 2/2] advapi32: CryptAcquireContext(CRYPT_DELETEKEYSET) should set returned provider handle to 0.

Dmitry Timoshkov dmitry at baikal.ru
Tue Mar 12 02:19:11 CDT 2019


Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/advapi32/crypt.c       | 1 +
 dlls/advapi32/tests/crypt.c | 2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/dlls/advapi32/crypt.c b/dlls/advapi32/crypt.c
index ab1e5982da..59b2971b07 100644
--- a/dlls/advapi32/crypt.c
+++ b/dlls/advapi32/crypt.c
@@ -523,6 +523,7 @@ BOOL WINAPI CryptAcquireContextW (HCRYPTPROV *phProv, LPCWSTR pszContainer,
 		 */
 		if (dwFlags & CRYPT_DELETEKEYSET)
 		{
+			*phProv = 0;
 			pProv->dwMagic = 0;
 			FreeLibrary(pProv->hModule);
 			CRYPT_Free(provnameA);
diff --git a/dlls/advapi32/tests/crypt.c b/dlls/advapi32/tests/crypt.c
index 4653f33c90..adc9c1612f 100644
--- a/dlls/advapi32/tests/crypt.c
+++ b/dlls/advapi32/tests/crypt.c
@@ -273,7 +273,6 @@ static void test_incorrect_api_usage(void)
     result = pCryptAcquireContextA(&hProv2, szBadKeySet, NULL, PROV_RSA_FULL, 
                                    CRYPT_DELETEKEYSET);
     ok (result, "%d\n", GetLastError());
-todo_wine
     ok (hProv2 == 0, "%ld\n", hProv2);
     if (!result) return;
 
@@ -1183,7 +1182,6 @@ static void test_container_sd(void)
     ret = CryptAcquireContextA(&prov, "winetest", "Microsoft Enhanced Cryptographic Provider v1.0",
                                PROV_RSA_FULL, CRYPT_MACHINE_KEYSET|CRYPT_DELETEKEYSET);
     ok(ret, "got %u\n", GetLastError());
-todo_wine
     ok(prov == 0, "got %ld\n", prov);
 }
 
-- 
2.20.1




More information about the wine-devel mailing list