Module: wine Branch: master Commit: c89211336b9e4309d18819f241e0f77ff882a56e URL: http://source.winehq.org/git/wine.git/?a=commit;h=c89211336b9e4309d18819f241...
Author: Lei Zhang thestig@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);