fixed some memory leaks
Modified: trunk/reactos/subsys/system/msconfig/srvpage.c

Modified: trunk/reactos/subsys/system/msconfig/srvpage.c
--- trunk/reactos/subsys/system/msconfig/srvpage.c	2005-11-13 23:05:41 UTC (rev 19214)
+++ trunk/reactos/subsys/system/msconfig/srvpage.c	2005-11-13 23:21:38 UTC (rev 19215)
@@ -156,6 +156,12 @@
                         }
                     }
 
+					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 @@
                         _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 @@
                             item.iSubItem = 2;
                             SendMessage(hServicesListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item);
                         }  
+						HeapFree(GetProcessHeap(), 0, lpData);
                     }
                     else
                     {
@@ -232,8 +242,6 @@
         }
 
         HeapFree(GetProcessHeap(), 0, pServiceStatus);
-        HeapFree(GetProcessHeap(), 0, pServiceConfig);
-        HeapFree(GetProcessHeap(), 0, pServiceFailureActions);
         CloseServiceHandle(ScHandle);
     }