diff options
Diffstat (limited to 'protocols/Xfire/src/tools.cpp')
| -rw-r--r-- | protocols/Xfire/src/tools.cpp | 26 | 
1 files changed, 13 insertions, 13 deletions
diff --git a/protocols/Xfire/src/tools.cpp b/protocols/Xfire/src/tools.cpp index ad982108b6..e499fab901 100644 --- a/protocols/Xfire/src/tools.cpp +++ b/protocols/Xfire/src/tools.cpp @@ -766,8 +766,9 @@ BOOL checkCommandLine(HANDLE hProcess, char * mustcontain, char * mustnotcontain  	char * buffer2;  	PPEB peb = NULL;  	PPROCESS_PARAMETERS proc_params = NULL; -	PVOID UserPool = (PVOID)LocalAlloc(LPTR, 8192); +	HLOCAL UserPool = LocalAlloc(LPTR, 8192);  	PROCESS_BASIC_INFORMATION ProcessInfo; +	HMODULE hNt = GetModuleHandle(_T("ntdll.dll"));  	//strings leer abbruch  	if (!mustcontain&&!mustnotcontain) @@ -776,17 +777,19 @@ BOOL checkCommandLine(HANDLE hProcess, char * mustcontain, char * mustnotcontain  	//prüfe und lade nötige funktionen  	if (_ZwQueryInformationProcess == NULL)  	{ -		_ZwQueryInformationProcess = (pZwQueryInformationProcess)GetProcAddress(GetModuleHandle(_T("ntdll.dll")), "ZwQueryInformationProcess"); +		_ZwQueryInformationProcess = (pZwQueryInformationProcess)GetProcAddress(hNt, "ZwQueryInformationProcess");  		if (_ZwQueryInformationProcess == NULL)  		{ +			LocalFree(UserPool);  			return TRUE;  		}  	}  	if (_ZwReadVirtualMemory == NULL)  	{ -		_ZwReadVirtualMemory = (pZwReadVirtualMemory)GetProcAddress(GetModuleHandle(_T("ntdll.dll")), "ZwReadVirtualMemory"); +		_ZwReadVirtualMemory = (pZwReadVirtualMemory)GetProcAddress(hNt, "ZwReadVirtualMemory");  		if (_ZwReadVirtualMemory == NULL)  		{ +			LocalFree(UserPool);  			return TRUE;  		}  	} @@ -839,24 +842,21 @@ BOOL checkCommandLine(HANDLE hProcess, char * mustcontain, char * mustnotcontain  	//lowercase mustcontain/mustnotcontain  	if (mustcontain)  		for (unsigned int i = 0; i < mir_strlen(mustcontain); i++) -		{ -		mustcontain[i] = tolower(mustcontain[i]); -		} +			mustcontain[i] = tolower(mustcontain[i]); +  	if (mustnotcontain)  		for (unsigned int i = 0; i < mir_strlen(mustnotcontain); i++) -		{ -		mustnotcontain[i] = tolower(mustnotcontain[i]); -		} +			mustnotcontain[i] = tolower(mustnotcontain[i]);  	string cmdline = buffer2;  	if (mustcontain)  		if (cmdline.find(mustcontain) != string::npos)  		{ -		delete[] buffer; -		delete[] buffer2; -		LocalFree(UserPool); -		return TRUE; +			delete[] buffer; +			delete[] buffer2; +			LocalFree(UserPool); +			return TRUE;  		}  		else  		{  | 
