diff options
author | James Tucker <james@tailscale.com> | 2023-09-27 14:52:21 -0700 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2023-10-10 15:37:17 +0200 |
commit | ec8f6f82c20c617a3ea94478f2b5e4d49c6d3c2c (patch) | |
tree | adb403a01a3e2bcc0b821772bba3a8e20b281674 | |
parent | 1ec454f253c068f74ba7a7aea34546c9819493c0 (diff) |
tun: fix crash when ForceMTU is called after close
Close closes the events channel, resulting in a panic from send on
closed channel.
Reported-By: Brad Fitzpatrick <brad@tailscale.com>
Signed-off-by: James Tucker <james@tailscale.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r-- | tun/tun_windows.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tun/tun_windows.go b/tun/tun_windows.go index 0cb4ce1..34f2980 100644 --- a/tun/tun_windows.go +++ b/tun/tun_windows.go @@ -127,6 +127,9 @@ func (tun *NativeTun) MTU() (int, error) { // TODO: This is a temporary hack. We really need to be monitoring the interface in real time and adapting to MTU changes. func (tun *NativeTun) ForceMTU(mtu int) { + if tun.close.Load() { + return + } update := tun.forcedMTU != mtu tun.forcedMTU = mtu if update { |