From: Matt Joiner Date: Mon, 25 Aug 2014 12:15:45 +0000 (+1000) Subject: Fix a few crashes X-Git-Tag: v1.0.0~1593 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=7dd932bd5a24522d5ddd2500091c1a11ec6926f6;p=btrtrc.git Fix a few crashes --- diff --git a/torrent.go b/torrent.go index 4c2a476e..0585a5f1 100644 --- a/torrent.go +++ b/torrent.go @@ -124,7 +124,7 @@ func (t *torrent) HaveMetadataPiece(piece int) bool { if t.haveInfo() { return (1<<14)*piece < len(t.MetaData) } else { - return t.metadataHave[piece] + return piece < len(t.metadataHave) && t.metadataHave[piece] } } @@ -252,7 +252,13 @@ func (t *torrent) NewMetadataExtensionMessage(c *connection, msgType int, piece func (t *torrent) WriteStatus(w io.Writer) { fmt.Fprintf(w, "Infohash: %x\n", t.InfoHash) - fmt.Fprintf(w, "Piece length: %d\n", t.UsualPieceSize()) + fmt.Fprintf(w, "Piece length: %s\n", func() string { + if t.haveInfo() { + return fmt.Sprint(t.UsualPieceSize()) + } else { + return "?" + } + }()) fmt.Fprint(w, "Pieces: ") for index := range t.Pieces { fmt.Fprintf(w, "%c", t.pieceStatusChar(index))