aboutsummaryrefslogtreecommitdiffstats
path: root/src/if_wg.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2021-06-06 15:23:22 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2021-06-06 15:33:17 +0200
commit7855bfe9305f2f0c1e92d6a47c389cbb1bb96ff9 (patch)
tree825008f97308930a1885d1e4a1bd15dfc5f0448a /src/if_wg.c
parentglobal: replace rwlock with mtx if never rlocked (diff)
downloadwireguard-freebsd-7855bfe9305f2f0c1e92d6a47c389cbb1bb96ff9.tar.xz
wireguard-freebsd-7855bfe9305f2f0c1e92d6a47c389cbb1bb96ff9.zip
if_wg: do not crash if deiniting before vnet is up
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/if_wg.c')
-rw-r--r--src/if_wg.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/if_wg.c b/src/if_wg.c
index 73248a6..11b8394 100644
--- a/src/if_wg.c
+++ b/src/if_wg.c
@@ -3037,7 +3037,10 @@ wg_module_deinit(void)
VNET_ITERATOR_DECL(vnet_iter);
VNET_LIST_RLOCK();
VNET_FOREACH(vnet_iter) {
- if_clone_detach(VNET_VNET(vnet_iter, wg_cloner));
+ struct if_clone *clone = VNET_VNET(vnet_iter, wg_cloner);
+ if (!clone)
+ continue;
+ if_clone_detach(clone);
VNET_VNET(vnet_iter, wg_cloner) = NULL;
}
VNET_LIST_RUNLOCK();