From 9a90dd7fde5f04269aa916f997aa7a11d02aa9c2 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 13 Nov 2005 23:21:38 +0000 Subject: [PATCH 1/1] fixed some memory leaks svn path=/trunk/; revision=19215 --- reactos/subsys/system/msconfig/srvpage.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/reactos/subsys/system/msconfig/srvpage.c b/reactos/subsys/system/msconfig/srvpage.c index 4bc1f493634..2a8c7e99fe7 100644 --- a/reactos/subsys/system/msconfig/srvpage.c +++ b/reactos/subsys/system/msconfig/srvpage.c @@ -156,6 +156,12 @@ GetServices ( void ) } } + if (pServiceFailureActions != NULL) + { + HeapFree(GetProcessHeap(), 0, pServiceFailureActions); + pServiceFailureActions = NULL; + } + /* get vendor of service binary */ BytesNeeded = 0; if (!QueryServiceConfig(hService, pServiceConfig, 0, &BytesNeeded)) @@ -188,7 +194,10 @@ GetServices ( void ) _tcscpy(FileName, pServiceConfig->lpBinaryPathName); } - dwLen = GetFileVersionInfoSize(FileName, &dwHandle); + HeapFree(GetProcessHeap(), 0, pServiceConfig); + pServiceConfig = NULL; + + dwLen = GetFileVersionInfoSize(FileName, &dwHandle); if (dwLen) { lpData = (TCHAR*) HeapAlloc(GetProcessHeap(), 0, dwLen); @@ -212,6 +221,7 @@ GetServices ( void ) item.iSubItem = 2; SendMessage(hServicesListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item); } + HeapFree(GetProcessHeap(), 0, lpData); } else { @@ -232,8 +242,6 @@ GetServices ( void ) } HeapFree(GetProcessHeap(), 0, pServiceStatus); - HeapFree(GetProcessHeap(), 0, pServiceConfig); - HeapFree(GetProcessHeap(), 0, pServiceFailureActions); CloseServiceHandle(ScHandle); } -- 2.17.1