[PATCH] advapi32: avoid memory leaks (Coverity)

Marcus Meissner marcus at jet.franken.de
Wed Oct 3 09:58:10 CDT 2012


CID 713326

free pszProvName in 2 exit paths.

Ciao, Marcus
---
 dlls/advapi32/tests/crypt.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/advapi32/tests/crypt.c b/dlls/advapi32/tests/crypt.c
index 7abf90b..779d573 100644
--- a/dlls/advapi32/tests/crypt.c
+++ b/dlls/advapi32/tests/crypt.c
@@ -530,8 +530,10 @@ static void test_enum_providers(void)
 	/* alloc provider to half the size required
 	 * cbName holds the size required */
 	providerLen = cbName / 2;
-	if (!(provider = LocalAlloc(LMEM_ZEROINIT, providerLen)))
+	if (!(provider = LocalAlloc(LMEM_ZEROINIT, providerLen))) {
+	        LocalFree(pszProvName);
 		return;
+        }
 
 	result = pCryptEnumProvidersA(dwIndex, NULL, 0, &type, provider, &providerLen);
 	ok(!result && GetLastError()==ERROR_MORE_DATA, "expected %i, got %d\n",
@@ -558,8 +560,10 @@ static void test_enum_providers(void)
 	/* check expected versus actual values returned */
 	result = pCryptEnumProvidersA(dwIndex, NULL, 0, &type, NULL, &providerLen);
 	ok(result && providerLen==cbName, "expected %i, got %i\n", (int)cbName, (int)providerLen);
-	if (!(provider = LocalAlloc(LMEM_ZEROINIT, providerLen)))
+	if (!(provider = LocalAlloc(LMEM_ZEROINIT, providerLen))) {
+	        LocalFree(pszProvName);
 		return;
+        }
 		
 	providerLen = 0xdeadbeef;
 	result = pCryptEnumProvidersA(dwIndex, NULL, 0, &type, provider, &providerLen);
-- 
1.7.3.4




More information about the wine-patches mailing list