From: James Nobis Date: Tue, 26 Oct 2010 04:02:11 +0000 (-0500) Subject: backport rcracki_mt-0.6.5.1 rti2 fixes X-Git-Url: https://git.sesse.net/?p=freerainbowtables;a=commitdiff_plain;h=5d57ae2db712bc64a209b349ed46ed5edbb65309 backport rcracki_mt-0.6.5.1 rti2 fixes --- diff --git a/Client Applications/rcracki_mt/ChangeLog.txt b/Client Applications/rcracki_mt/ChangeLog.txt index 4c0eefd..f22f28b 100644 --- a/Client Applications/rcracki_mt/ChangeLog.txt +++ b/Client Applications/rcracki_mt/ChangeLog.txt @@ -1,5 +1,8 @@ [rcracki_mt ChangeLog] +0.6.5.1 (25 Oct 2010, 15:50:10): +* rti2 fixes courtesy of PowerBlade + 0.6.5 (24 Oct 2010, 18:21:25): * code changes to allow building via mingw and avoid VC++ * linux thread priority set to nice value of 2 diff --git a/Client Applications/rcracki_mt/CrackEngine.cpp b/Client Applications/rcracki_mt/CrackEngine.cpp index 8adc182..1e00fce 100644 --- a/Client Applications/rcracki_mt/CrackEngine.cpp +++ b/Client Applications/rcracki_mt/CrackEngine.cpp @@ -1064,16 +1064,14 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs) // Load table chunk if (debug) printf("reading...\n"); - unsigned int nDataRead = 0; + unsigned int nDataRead = 0, nDataToRead = 0; gettimeofday( &tv, NULL ); if ( doRti2Format ) { - nDataRead = nAllocatedSize / 16; + nDataToRead = nAllocatedSize / 16; + nDataRead = nDataToRead; pReader->ReadChains(nDataRead, pChain); nDataRead *= 8; // Convert from chains read to bytes - - if ( nDataRead == 0 ) // No more data - break; } else { @@ -1138,6 +1136,13 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs) // Already finished? if (!hs.AnyHashLeftWithLen(CChainWalkContext::GetHashLen())) break; + + // finished the current table + if( doRti2Format && nDataToRead > (nDataRead / 8) ) + { + delete pReader; + break; + } } } else