diff --git a/control/noise/conn.go b/control/noise/conn.go index 6de8dc8d9..928de5ff3 100644 --- a/control/noise/conn.go +++ b/control/noise/conn.go @@ -87,7 +87,7 @@ func (c *Conn) Peer() key.MachinePublic { } // readNLocked reads into c.rx.buf until buf contains at least total -// bytes. Returns a slice of the available bytes in rxBuf, or an +// bytes. Returns a slice of the total bytes in rxBuf, or an // error if fewer than total bytes are available. func (c *Conn) readNLocked(total int) ([]byte, error) { if total > maxMessageSize { @@ -95,7 +95,7 @@ func (c *Conn) readNLocked(total int) ([]byte, error) { } for { if total <= c.rx.n { - return c.rx.buf[:c.rx.n], nil + return c.rx.buf[:total], nil } n, err := c.conn.Read(c.rx.buf[c.rx.n:]) @@ -202,7 +202,6 @@ func (c *Conn) decryptOneLocked() error { if err != nil { return err } - bs = bs[:messageLen] c.rx.next = len(bs)