summaryrefslogtreecommitdiffhomepage
path: root/device/receive.go
diff options
context:
space:
mode:
Diffstat (limited to 'device/receive.go')
-rw-r--r--device/receive.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/device/receive.go b/device/receive.go
index e4a94b5..0a8228c 100644
--- a/device/receive.go
+++ b/device/receive.go
@@ -37,6 +37,17 @@ type QueueInboundElement struct {
endpoint conn.Endpoint
}
+// clearPointers clears elem fields that contain pointers.
+// This makes the garbage collector's life easier and
+// avoids accidentally keeping other objects around unnecessarily.
+// It also reduces the possible collateral damage from use-after-free bugs.
+func (elem *QueueInboundElement) clearPointers() {
+ elem.buffer = nil
+ elem.packet = nil
+ elem.keypair = nil
+ elem.endpoint = nil
+}
+
func (elem *QueueInboundElement) Drop() {
atomic.StoreInt32(&elem.dropped, AtomicTrue)
}