]> git.sesse.net Git - freerainbowtables/commitdiff
backport rcracki_mt-0.6.5.1 rti2 fixes
authorJames Nobis <quel@quelrod.net>
Tue, 26 Oct 2010 04:02:11 +0000 (23:02 -0500)
committerJames Nobis <quel@quelrod.net>
Tue, 26 Oct 2010 04:02:11 +0000 (23:02 -0500)
Client Applications/rcracki_mt/ChangeLog.txt
Client Applications/rcracki_mt/CrackEngine.cpp

index 4c0eefddb996249d9db2bd46e0265d73e5460fbc..f22f28bc3cc3d89cd277f138a972cdb42b1c5314 100644 (file)
@@ -1,5 +1,8 @@
 [rcracki_mt ChangeLog]\r
 \r
+0.6.5.1 (25 Oct 2010, 15:50:10):\r
+* rti2 fixes courtesy of PowerBlade\r
+\r
 0.6.5 (24 Oct 2010, 18:21:25):\r
 * code changes to allow building via mingw and avoid VC++\r
 * linux thread priority set to nice value of 2\r
index 8adc18274a2e76efa33d3e59ac8c9861daeaa64f..1e00fce729b8a17b08db54b1293b762c6849b08a 100644 (file)
@@ -1064,16 +1064,14 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs)
 \r
                                                // Load table chunk\r
                                                if (debug) printf("reading...\n");\r
-                                               unsigned int nDataRead = 0;\r
+                                               unsigned int nDataRead = 0, nDataToRead = 0;\r
                                                gettimeofday( &tv, NULL );\r
                                                if ( doRti2Format )\r
                                                {\r
-                                                       nDataRead = nAllocatedSize / 16;\r
+                                                       nDataToRead = nAllocatedSize / 16;\r
+                                                       nDataRead = nDataToRead;\r
                                                        pReader->ReadChains(nDataRead, pChain);\r
                                                        nDataRead *= 8; // Convert from chains read to bytes\r
-\r
-                                                       if ( nDataRead == 0 ) // No more data\r
-                                                               break;\r
                                                }\r
                                                else\r
                                                {\r
@@ -1138,6 +1136,13 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs)
                                                // Already finished?\r
                                                if (!hs.AnyHashLeftWithLen(CChainWalkContext::GetHashLen()))\r
                                                        break;\r
+\r
+                                               // finished the current table\r
+                                               if( doRti2Format && nDataToRead > (nDataRead / 8) )\r
+                                               {\r
+                                                       delete pReader;\r
+                                                       break;\r
+                                               }\r
                                        }\r
                                }\r
                                else\r