Clean up check_procs

fixes #7667
This commit is contained in:
Jean Flach 2014-11-14 13:15:32 +01:00
parent e187f405d9
commit 8557293ac4

View File

@ -23,7 +23,7 @@
#include "thresholds.h" #include "thresholds.h"
#include "boost\program_options.hpp" #include "boost/program_options.hpp"
#define VERSION 1.0 #define VERSION 1.0
@ -70,7 +70,7 @@ int printOutput(const int numProcs, printInfoStruct& printInfo)
state = CRITICAL; state = CRITICAL;
switch (state) { switch (state) {
case OK: case OK:
wcout << L"PROCS OK " << numProcs << L"|procs=" << numProcs << L";" wcout << L"PROCS OK " << numProcs << L"|procs=" << numProcs << L";"
<< printInfo.warn.pString() << L";" << printInfo.crit.pString() << L";0" << endl; << printInfo.warn.pString() << L";" << printInfo.crit.pString() << L";0" << endl;
break; break;
@ -240,25 +240,21 @@ int countProcs(const wstring user)
pe32.dwSize = sizeof(PROCESSENTRY32); pe32.dwSize = sizeof(PROCESSENTRY32);
if (!Process32First(hProcessSnap, &pe32)) { if (!Process32First(hProcessSnap, &pe32))
goto die; goto die;
}
do { do {
//get ProcessToken //get ProcessToken
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pe32.th32ProcessID); hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pe32.th32ProcessID);
if (!OpenProcessToken(hProcess, TOKEN_QUERY, &hToken)) if (!OpenProcessToken(hProcess, TOKEN_QUERY, &hToken))
//Won't count pid 0 (system idle) and 4/8 (Sytem) //Won't count pid 0 (system idle) and 4/8 (Sytem)
continue; continue;
//Get dwReturnLength in first call //Get dwReturnLength in first call
dwReturnLength = 1; dwReturnLength = 1;
if (!GetTokenInformation(hToken, TokenUser, NULL, 0, &dwReturnLength) if (!GetTokenInformation(hToken, TokenUser, NULL, 0, &dwReturnLength)
&& GetLastError() != ERROR_INSUFFICIENT_BUFFER) && GetLastError() != ERROR_INSUFFICIENT_BUFFER)
continue; continue;
pSIDTokenUser = (PTOKEN_USER)new BYTE[dwReturnLength]; pSIDTokenUser = (PTOKEN_USER)new BYTE[dwReturnLength];
memset(pSIDTokenUser, 0, dwReturnLength); memset(pSIDTokenUser, 0, dwReturnLength);