From 968ad51d2a77750cd6b371a57b5b6bd809d89914 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Mon, 1 May 2006 15:56:53 +0200 Subject: [PATCH] secur32: Missing LeaveCriticalSection on error paths. --- dlls/secur32/secur32.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dlls/secur32/secur32.c b/dlls/secur32/secur32.c index 475778265c..ebe7e2ed16 100644 --- a/dlls/secur32/secur32.c +++ b/dlls/secur32/secur32.c @@ -396,14 +396,20 @@ SecureProvider *SECUR32_addProvider(const SecurityFunctionTableA *fnTableA, { providerTable = HeapAlloc(GetProcessHeap(), 0, sizeof(SecureProviderTable)); if (!providerTable) + { + LeaveCriticalSection(&cs); return NULL; + } list_init(&providerTable->table); } ret = HeapAlloc(GetProcessHeap(), 0, sizeof(SecureProvider)); if (!ret) + { + LeaveCriticalSection(&cs); return NULL; + } list_add_tail(&providerTable->table, &ret->entry); ret->lib = NULL; @@ -439,7 +445,10 @@ void SECUR32_addPackages(SecureProvider *provider, ULONG toAdd, { packageTable = HeapAlloc(GetProcessHeap(), 0, sizeof(SecurePackageTable)); if (!packageTable) + { + LeaveCriticalSection(&cs); return; + } packageTable->numPackages = 0; list_init(&packageTable->table); -- 2.32.0.93.g670b81a890