aboutsummaryrefslogtreecommitdiffstats
path: root/device/send.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2021-02-09 15:09:50 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2021-02-09 15:37:04 +0100
commit6ac1240821207c90708ac205f4f98eb8b82f3ee5 (patch)
tree1331654d522170b1942bfcd1741bcc3b6fb40672 /device/send.go
parentdevice: lock elem in autodraining queue before freeing (diff)
downloadwireguard-go-6ac1240821207c90708ac205f4f98eb8b82f3ee5.tar.xz
wireguard-go-6ac1240821207c90708ac205f4f98eb8b82f3ee5.zip
device: do not attach finalizer to non-returned object
Before, the code attached a finalizer to an object that wasn't returned, resulting in immediate garbage collection. Instead return the actual pointer. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'device/send.go')
-rw-r--r--device/send.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/device/send.go b/device/send.go
index 911ee5c..783e5b9 100644
--- a/device/send.go
+++ b/device/send.go
@@ -317,7 +317,7 @@ top:
// add to parallel and sequential queue
if peer.isRunning.Get() {
- peer.queue.outbound <- elem
+ peer.queue.outbound.c <- elem
peer.device.queue.encryption.c <- elem
} else {
peer.device.PutMessageBuffer(elem.buffer)
@@ -410,7 +410,7 @@ func (peer *Peer) RoutineSequentialSender() {
}()
device.log.Verbosef("%v - Routine: sequential sender - started", peer)
- for elem := range peer.queue.outbound {
+ for elem := range peer.queue.outbound.c {
if elem == nil {
return
}