void ProcessProbe::BuildProcessItem ( PROCESSENTRY32 processEntry ) {
HANDLE openProcessHandle = OpenProcess ( PROCESS_ALL_ACCESS, false, processEntry.th32ProcessID );
if ( openProcessHandle != NULL ) {
StringStringMultiMap::iterator it;
string commandLineStr = "";
string deviceProcessImageNameStr = "";
LPTSTR deviceProcessImageName = ( LPTSTR ) malloc ( sizeof ( TCHAR ) * MAX_PATH );
unsigned int position = 0;
...
should be "size_t position", if not,
if ( ( position = deviceProcessImageNameStr.find ( iterator->first ) ) != string::npos )
will be false forever
sorry, be true forever. even not found, the following code will be executed still.
Fixed in r1802