]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
device: send: check packet length before freeing element
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 18 Apr 2019 14:22:03 +0000 (23:22 +0900)
committerJason A. Donenfeld <Jason@zx2c4.com>
Thu, 18 Apr 2019 14:23:03 +0000 (23:23 +0900)
device/send.go

index b4e23c7fddf8567d8523d8eddbb8d61b0f9451ae..ccb28da669fe9c40f7ca6e4a885687e02c456c7c 100644 (file)
@@ -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()
                }
        }