]> granicus.if.org Git - transmission/commitdiff
(trunk libT) #3622 "verification ignores return value of pread" -- commit fixVerify...
authorCharles Kerr <charles@transmissionbt.com>
Tue, 19 Oct 2010 13:56:58 +0000 (13:56 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Tue, 19 Oct 2010 13:56:58 +0000 (13:56 +0000)
libtransmission/verify.c

index 6c6c8123b49ea07620c3acc99e1dac579e9452d0..4826ac7237013033c8cb9bc10532f23a7cac1b0d 100644 (file)
@@ -100,12 +100,13 @@ verifyTorrent( tr_torrent * tor, tr_bool * stopFlag )
         /* read a bit */
         if( fd >= 0 ) {
             const ssize_t numRead = tr_pread( fd, buffer, bytesThisPass, filePos );
-            if( numRead == (ssize_t)bytesThisPass )
-                SHA1_Update( &sha, buffer, numRead );
+            if( numRead > 0 ) {
+                bytesThisPass = (uint32_t)numRead;
+                SHA1_Update( &sha, buffer, bytesThisPass );
 #if defined HAVE_POSIX_FADVISE && defined POSIX_FADV_DONTNEED
-            if( numRead > 0 )
                 posix_fadvise( fd, filePos, bytesThisPass, POSIX_FADV_DONTNEED );
 #endif
+            }
         }
 
         /* move our offsets */