]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix crash in metadata requests beyond available info bytes
authorMatt Joiner <anacrolix@gmail.com>
Thu, 21 Aug 2014 17:42:00 +0000 (03:42 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 21 Aug 2014 17:42:00 +0000 (03:42 +1000)
torrent.go

index 7257bb30d83df6bc7033055018d15a78ee052c59..178f29aed56d0474bb4e7a42915419ec559d95bf 100644 (file)
@@ -91,7 +91,11 @@ func (t *torrent) MetadataPieceCount() int {
 }
 
 func (t *torrent) HaveMetadataPiece(piece int) bool {
-       return t.haveInfo() || t.metadataHave[piece]
+       if t.haveInfo() {
+               return (1<<14)*piece < len(t.MetaData)
+       } else {
+               return t.metadataHave[piece]
+       }
 }
 
 func (t *torrent) metadataSizeKnown() bool {