]> granicus.if.org Git - apache/commitdiff
Solve service status handle leak on multi-service ApacheMonitor
authorWilliam A. Rowe Jr <wrowe@apache.org>
Sat, 22 Dec 2007 20:00:59 +0000 (20:00 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Sat, 22 Dec 2007 20:00:59 +0000 (20:00 +0000)
instances, and disconnect computer function on multi-system
applications of ApacheMonitor.

PR: 33803
Reported by: K.W.Schick <drax sawebs.com>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@606481 13f79535-47bb-0310-9956-ffa450edef68

support/win32/ApacheMonitor.c

index 296da05423ccbb80aa4ea077831eaf4ec0a5aef8..e39f9b8d98ab7df1eccfd4b382110828a88ec083 100644 (file)
@@ -193,15 +193,12 @@ void am_DisconnectComputer(LPSTR szComputerName)
         free(g_stComputers[i].szComputerName);
         RegCloseKey(g_stComputers[i].hRegistry);
         for (j = i; j < MAX_APACHE_COMPUTERS - 1; j++) {
-            g_stComputers[i].szComputerName= g_stComputers[i+1].szComputerName;
-            g_stComputers[i].hRegistry = g_stComputers[i+1].hRegistry;
-        }
-        for (i = j; i < MAX_APACHE_COMPUTERS; i++) {
-            g_stComputers[i].szComputerName = NULL;
-            g_stComputers[i].hRegistry = NULL;
+            g_stComputers[j].szComputerName= g_stComputers[j+1].szComputerName;
+            g_stComputers[j].hRegistry = g_stComputers[j+1].hRegistry;
         }
+        g_stComputers[j].szComputerName = NULL;
+        g_stComputers[j].hRegistry = NULL;
     }
-
 }
 
 
@@ -1055,8 +1052,8 @@ BOOL GetApacheServicesStatus()
             }
         }
         ++computers;
+        RegCloseKey(hKey);
     }
-    RegCloseKey(hKey);
     FindRunningServices();
     return TRUE;
 }