From: William A. Rowe Jr Date: Sat, 22 Dec 2007 20:11:29 +0000 (+0000) Subject: Solve service status handle leak on multi-service ApacheMonitor X-Git-Tag: 2.0.62~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad06751b60d3aee25137e58c448d0d348ca1d37d;p=thirdparty%2Fapache%2Fhttpd.git 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 Backport: 606481 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@606483 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/support/win32/ApacheMonitor.c b/support/win32/ApacheMonitor.c index 084c79139e4..7432f2a432d 100644 --- a/support/win32/ApacheMonitor.c +++ b/support/win32/ApacheMonitor.c @@ -186,15 +186,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; } - } @@ -1049,8 +1046,8 @@ BOOL GetApacheServicesStatus() } } ++computers; + RegCloseKey(hKey); } - RegCloseKey(hKey); FindRunningServices(); return TRUE; }