]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix racy Torrent.wantConns check when adding connections
authorMatt Joiner <anacrolix@gmail.com>
Tue, 26 Jun 2018 10:47:21 +0000 (20:47 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 26 Jun 2018 10:47:21 +0000 (20:47 +1000)
torrent.go

index 159139792fbe17455982a765bd86aba199658cb3..d7bb2bdbac9bb1586182899f04056b9e7b9b433b 100644 (file)
@@ -1524,11 +1524,11 @@ func (t *Torrent) addConnection(c *connection) (err error) {
                        return errors.New("existing connection preferred")
                }
        }
-       if !t.wantConns() {
-               return errors.New("don't want conns")
-       }
        if len(t.conns) >= t.maxEstablishedConns {
                c := t.worstBadConn()
+               if c == nil {
+                       return errors.New("don't want conns")
+               }
                if t.cl.config.Debug && missinggo.CryHeard() {
                        log.Printf("%s: dropping connection to make room for new one:\n    %v", t, c)
                }