From 897c00dfc00f019b9bb8e0858bfd5592f9f76679 Mon Sep 17 00:00:00 2001 From: "William A. Rowe Jr" Date: Sat, 22 Dec 2007 20:00:59 +0000 Subject: [PATCH] Solve service status handle leak on multi-service ApacheMonitor instances, and disconnect computer function on multi-system applications of ApacheMonitor. PR: 33803 Reported by: K.W.Schick git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@606481 13f79535-47bb-0310-9956-ffa450edef68 --- support/win32/ApacheMonitor.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/support/win32/ApacheMonitor.c b/support/win32/ApacheMonitor.c index 296da05423..e39f9b8d98 100644 --- a/support/win32/ApacheMonitor.c +++ b/support/win32/ApacheMonitor.c @@ -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; } -- 2.50.1