Lei Zhang : secur32: Fix memory leak in SECUR32_addPackages.
Alexandre Julliard
julliard at winehq.org
Thu Dec 17 10:37:09 CST 2009
Module: wine
Branch: master
Commit: c89211336b9e4309d18819f241e0f77ff882a56e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c89211336b9e4309d18819f241e0f77ff882a56e
Author: Lei Zhang <thestig at google.com>
Date: Thu Dec 17 01:53:38 2009 -0800
secur32: Fix memory leak in SECUR32_addPackages.
---
dlls/secur32/secur32.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/dlls/secur32/secur32.c b/dlls/secur32/secur32.c
index 4171778..f626617 100644
--- a/dlls/secur32/secur32.c
+++ b/dlls/secur32/secur32.c
@@ -666,9 +666,6 @@ SecurePackage *SECUR32_findPackageA(PCSTR packageName)
static void SECUR32_freeProviders(void)
{
- SecurePackage *package;
- SecureProvider *provider;
-
TRACE("\n");
EnterCriticalSection(&cs);
@@ -676,10 +673,13 @@ static void SECUR32_freeProviders(void)
if (packageTable)
{
- LIST_FOR_EACH_ENTRY(package, &packageTable->table, SecurePackage, entry)
+ SecurePackage *package, *package_next;
+ LIST_FOR_EACH_ENTRY_SAFE(package, package_next, &packageTable->table,
+ SecurePackage, entry)
{
HeapFree(GetProcessHeap(), 0, package->infoW.Name);
HeapFree(GetProcessHeap(), 0, package->infoW.Comment);
+ HeapFree(GetProcessHeap(), 0, package);
}
HeapFree(GetProcessHeap(), 0, packageTable);
@@ -688,11 +688,14 @@ static void SECUR32_freeProviders(void)
if (providerTable)
{
- LIST_FOR_EACH_ENTRY(provider, &providerTable->table, SecureProvider, entry)
+ SecureProvider *provider, *provider_next;
+ LIST_FOR_EACH_ENTRY_SAFE(provider, provider_next, &providerTable->table,
+ SecureProvider, entry)
{
HeapFree(GetProcessHeap(), 0, provider->moduleName);
if (provider->lib)
FreeLibrary(provider->lib);
+ HeapFree(GetProcessHeap(), 0, provider);
}
HeapFree(GetProcessHeap(), 0, providerTable);
More information about the wine-cvs
mailing list