From: Jason A. Donenfeld Date: Tue, 22 Dec 2020 20:34:21 +0000 (+0100) Subject: device: fix alignment of peer stats member X-Git-Tag: 0.0.20210212~116 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=25b01723ddc8bcd2993eb4b21e4e61164f55fa95;p=thirdparty%2Fwireguard-go.git device: fix alignment of peer stats member This was shifted by 2 bytes when making persistent keepalive into a u32. Fix it by placing it after the aligned region. Fixes: e739ff7 ("device: fix persistent_keepalive_interval data races") Signed-off-by: Jason A. Donenfeld --- diff --git a/device/peer.go b/device/peer.go index 73e6083..8006b9f 100644 --- a/device/peer.go +++ b/device/peer.go @@ -28,7 +28,6 @@ type Peer struct { device *Device endpoint conn.Endpoint persistentKeepaliveInterval uint32 // accessed atomically - disableRoaming bool // These fields are accessed with atomic operations, which must be // 64-bit aligned even on 32-bit platforms. Go guarantees that an @@ -41,6 +40,8 @@ type Peer struct { lastHandshakeNano int64 // nano seconds since epoch } + disableRoaming bool + timers struct { retransmitHandshake *Timer sendKeepalive *Timer