]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix panic in Client.WriteStatus if info isn't available
authorMatt Joiner <anacrolix@gmail.com>
Tue, 27 May 2025 07:52:24 +0000 (17:52 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 27 May 2025 07:52:24 +0000 (17:52 +1000)
client.go

index 709f74e3fc437b683fdafa6431cee9fb3946f73b..76694ec9c1007f696a336ecb67d819ae0c30223f 100644 (file)
--- a/client.go
+++ b/client.go
@@ -186,7 +186,13 @@ func (cl *Client) WriteStatus(_w io.Writer) {
        slices.SortFunc(torrentsSlice, func(a, b *Torrent) int {
                return cmp.Or(
                        compareBool(a.haveInfo(), b.haveInfo()),
-                       -cmp.Compare(a.bytesLeft(), b.bytesLeft()),
+                       func() int {
+                               if a.haveInfo() && b.haveInfo() {
+                                       return -cmp.Compare(a.bytesLeft(), b.bytesLeft())
+                               } else {
+                                       return 0
+                               }
+                       }(),
                        cmp.Compare(a.canonicalShortInfohash().AsString(), b.canonicalShortInfohash().AsString()),
                )
        })