From: Jason A. Donenfeld Date: Thu, 18 Apr 2019 14:22:03 +0000 (+0900) Subject: device: send: check packet length before freeing element X-Git-Tag: 0.0.20190517~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3dd991e4e6f670c5daba9ba81aaa226b85eb200;p=thirdparty%2Fwireguard-go.git device: send: check packet length before freeing element --- diff --git a/device/send.go b/device/send.go index b4e23c7..ccb28da 100644 --- a/device/send.go +++ b/device/send.go @@ -601,6 +601,9 @@ func (peer *Peer) RoutineSequentialSender() { length := uint64(len(elem.packet)) err := peer.SendBuffer(elem.packet) + if len(elem.packet) != MessageKeepaliveSize { + peer.timersDataSent() + } device.PutMessageBuffer(elem.buffer) device.PutOutboundElement(elem) if err != nil { @@ -609,9 +612,6 @@ func (peer *Peer) RoutineSequentialSender() { } atomic.AddUint64(&peer.stats.txBytes, length) - if len(elem.packet) != MessageKeepaliveSize { - peer.timersDataSent() - } peer.keepKeyFreshSending() } }