[ros-diffs] [cwittich] 29431: -fix a resource leak and two memory leaks

cwittich at svn.reactos.org cwittich at svn.reactos.org
Sun Oct 7 02:21:58 CEST 2007


Author: cwittich
Date: Sun Oct  7 04:21:58 2007
New Revision: 29431

URL: http://svn.reactos.org/svn/reactos?rev=29431&view=rev
Log:
-fix a resource leak and two memory leaks

Modified:
    trunk/reactos/base/applications/mscutils/servman/listview.c
    trunk/reactos/base/applications/mscutils/servman/mainwnd.c
    trunk/reactos/base/applications/mscutils/servman/propsheet.c
    trunk/reactos/base/applications/mscutils/servman/query.c

Modified: trunk/reactos/base/applications/mscutils/servman/listview.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils/servman/listview.c?rev=29431&r1=29430&r2=29431&view=diff
==============================================================================
--- trunk/reactos/base/applications/mscutils/servman/listview.c (original)
+++ trunk/reactos/base/applications/mscutils/servman/listview.c Sun Oct  7 04:21:58 2007
@@ -42,10 +42,10 @@
         EnableMenuItem(hMainMenu,
                        ID_PROP,
                        MF_ENABLED);
-        EnableMenuItem(Info->hShortcutMenu,
+        EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0),
                        ID_PROP,
                        MF_ENABLED);
-        SetMenuDefaultItem(Info->hShortcutMenu,
+        SetMenuDefaultItem(GetSubMenu(Info->hShortcutMenu, 0),
                            ID_PROP,
                            MF_BYCOMMAND);
     }
@@ -58,7 +58,7 @@
         EnableMenuItem(hMainMenu,
                        ID_DELETE,
                        MF_ENABLED);
-        EnableMenuItem(Info->hShortcutMenu,
+        EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0),
                        ID_DELETE,
                        MF_ENABLED);
     }

Modified: trunk/reactos/base/applications/mscutils/servman/mainwnd.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils/servman/mainwnd.c?rev=29431&r1=29430&r2=29431&view=diff
==============================================================================
--- trunk/reactos/base/applications/mscutils/servman/mainwnd.c (original)
+++ trunk/reactos/base/applications/mscutils/servman/mainwnd.c Sun Oct  7 04:21:58 2007
@@ -162,7 +162,7 @@
     for (i = ID_START; i <= ID_RESTART; i++)
     {
         EnableMenuItem(hMainMenu, i, MF_GRAYED);
-        EnableMenuItem(Info->hShortcutMenu, ID_START, MF_GRAYED);
+        EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0), ID_START, MF_GRAYED);
         SendMessage(Info->hTool, TB_SETSTATE, i,
                     (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
     }
@@ -175,7 +175,7 @@
             SendMessage(Info->hTool, TB_SETSTATE, ID_DELETE,
                        (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
             EnableMenuItem(hMainMenu, ID_DELETE, MF_ENABLED);
-            EnableMenuItem(Info->hShortcutMenu, ID_DELETE, MF_ENABLED);
+            EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0), ID_DELETE, MF_ENABLED);
         }
 
         Flags = Info->pCurrentService->ServiceStatusProcess.dwControlsAccepted;
@@ -184,7 +184,7 @@
         if (State == SERVICE_STOPPED)
         {
             EnableMenuItem(hMainMenu, ID_START, MF_ENABLED);
-            EnableMenuItem(Info->hShortcutMenu, ID_START, MF_ENABLED);
+            EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0), ID_START, MF_ENABLED);
             SendMessage(Info->hTool, TB_SETSTATE, ID_START,
                    (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
         }
@@ -192,7 +192,7 @@
         if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) )
         {
             EnableMenuItem(hMainMenu, ID_STOP, MF_ENABLED);
-            EnableMenuItem(Info->hShortcutMenu, ID_STOP, MF_ENABLED);
+            EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0), ID_STOP, MF_ENABLED);
             SendMessage(Info->hTool, TB_SETSTATE, ID_STOP,
                    (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
         }
@@ -200,7 +200,7 @@
         if ( (Flags & SERVICE_ACCEPT_PAUSE_CONTINUE) && (State == SERVICE_RUNNING) )
         {
             EnableMenuItem(hMainMenu, ID_PAUSE, MF_ENABLED);
-            EnableMenuItem(Info->hShortcutMenu, ID_PAUSE, MF_ENABLED);
+            EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0), ID_PAUSE, MF_ENABLED);
             SendMessage(Info->hTool, TB_SETSTATE, ID_PAUSE,
                    (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
         }
@@ -208,7 +208,7 @@
         if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) )
         {
             EnableMenuItem(hMainMenu, ID_RESTART, MF_ENABLED);
-            EnableMenuItem(Info->hShortcutMenu, ID_RESTART, MF_ENABLED);
+            EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0), ID_RESTART, MF_ENABLED);
             SendMessage(Info->hTool, TB_SETSTATE, ID_RESTART,
                    (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
         }
@@ -218,8 +218,8 @@
         /* disable tools which rely on a selected service */
         EnableMenuItem(hMainMenu, ID_PROP, MF_GRAYED);
         EnableMenuItem(hMainMenu, ID_DELETE, MF_GRAYED);
-        EnableMenuItem(Info->hShortcutMenu, ID_PROP, MF_GRAYED);
-        EnableMenuItem(Info->hShortcutMenu, ID_DELETE, MF_GRAYED);
+        EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0), ID_PROP, MF_GRAYED);
+        EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0), ID_DELETE, MF_GRAYED);
         SendMessage(Info->hTool, TB_SETSTATE, ID_PROP,
                    (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
         SendMessage(Info->hTool, TB_SETSTATE, ID_DELETE,
@@ -347,8 +347,6 @@
     /* Create Popup Menu */
     Info->hShortcutMenu = LoadMenu(hInstance,
                                    MAKEINTRESOURCE(IDR_POPUP));
-    Info->hShortcutMenu = GetSubMenu(Info->hShortcutMenu,
-                                     0);
 
     Info->bIsUserAnAdmin = IsUserAnAdmin();
     if (Info->bIsUserAnAdmin)
@@ -365,7 +363,7 @@
                            ID_CREATE,
                            MF_ENABLED);
         }
-        EnableMenuItem(Info->hShortcutMenu,
+        EnableMenuItem(GetSubMenu(Info->hShortcutMenu, 0),
                        ID_CREATE,
                        MF_ENABLED);
     }
@@ -766,7 +764,7 @@
                 GetWindowRect(Info->hListView, &lvRect);
                 if (PtInRect(&lvRect, pt))
                 {
-                    TrackPopupMenuEx(Info->hShortcutMenu,
+                    TrackPopupMenuEx(GetSubMenu(Info->hShortcutMenu, 0),
                                      TPM_RIGHTBUTTON,
                                      xPos,
                                      yPos,

Modified: trunk/reactos/base/applications/mscutils/servman/propsheet.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils/servman/propsheet.c?rev=29431&r1=29430&r2=29431&view=diff
==============================================================================
--- trunk/reactos/base/applications/mscutils/servman/propsheet.c (original)
+++ trunk/reactos/base/applications/mscutils/servman/propsheet.c Sun Oct  7 04:21:58 2007
@@ -180,6 +180,9 @@
                            WM_SETTEXT,
                            0,
                            (LPARAM)pServiceConfig->lpBinaryPathName);
+        HeapFree(ProcessHeap,
+                         0,
+                         pServiceConfig);
     }
 
 

Modified: trunk/reactos/base/applications/mscutils/servman/query.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils/servman/query.c?rev=29431&r1=29430&r2=29431&view=diff
==============================================================================
--- trunk/reactos/base/applications/mscutils/servman/query.c (original)
+++ trunk/reactos/base/applications/mscutils/servman/query.c Sun Oct  7 04:21:58 2007
@@ -270,6 +270,13 @@
     DWORD ResumeHandle = 0;
 
     *NumServices = 0;
+
+    if (Info->pAllServices != NULL)
+    {
+        HeapFree(ProcessHeap,
+                     0,
+                     Info->pAllServices);
+    }
 
     ScHandle = OpenSCManager(NULL,
                              NULL,




More information about the Ros-diffs mailing list