]> granicus.if.org Git - transmission/commitdiff
#1143: crash in 1.30 when adding torrents: div by zero#1143: crash in 1.30 when addin...
authorCharles Kerr <charles@transmissionbt.com>
Wed, 6 Aug 2008 11:39:30 +0000 (11:39 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Wed, 6 Aug 2008 11:39:30 +0000 (11:39 +0000)
libtransmission/torrent.c

index 138c6edc8db32fde9127f5745239010bce00615b..2fb4d2f658bdccacda86e93158b783db6efea691 100644 (file)
@@ -400,7 +400,7 @@ getBlockSize( uint32_t pieceSize )
     uint32_t b = pieceSize;
     while( b > MAX_BLOCK_SIZE )
         b /= 2u;
-    if( pieceSize % b ) /* not cleanly divisible */
+    if( !b || ( pieceSize % b ) ) /* not cleanly divisible */
         return 0;
     return b;
 }
@@ -553,7 +553,7 @@ tr_torrentParse( const tr_handle  * handle,
     err = tr_metainfoParse( handle, setmeInfo, metainfo );
     doFree = !err && ( setmeInfo == &tmp );
 
-    if( !getBlockSize( setmeInfo->pieceSize ) )
+    if( !err && !getBlockSize( setmeInfo->pieceSize ) )
         err = TR_EINVALID;
 
     if( !err && tr_torrentExists( handle, setmeInfo->hash ) )