diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-05-19 04:17:49 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-05-22 16:41:59 +0200 |
commit | 3b422963cebf39a5fd165c3b38e66f0ae0e136e9 (patch) | |
tree | 35698e2571eeb41af79d8b436a7854d768d30888 /src | |
parent | ncat-client-server: do not always call sudo and use env bash (diff) | |
download | wireguard-monolithic-historical-3b422963cebf39a5fd165c3b38e66f0ae0e136e9.tar.xz wireguard-monolithic-historical-3b422963cebf39a5fd165c3b38e66f0ae0e136e9.zip |
allowedips: set pointer to null before freeing
Diffstat (limited to 'src')
-rw-r--r-- | src/allowedips.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/allowedips.c b/src/allowedips.c index 293bb75..07b2a3c 100644 --- a/src/allowedips.c +++ b/src/allowedips.c @@ -279,11 +279,12 @@ void allowedips_init(struct allowedips *table) void allowedips_free(struct allowedips *table, struct mutex *lock) { + struct allowedips_node __rcu *old4 = table->root4, *old6 = table->root6; ++table->seq; - free_root_node(table->root4, lock); rcu_assign_pointer(table->root4, NULL); - free_root_node(table->root6, lock); rcu_assign_pointer(table->root6, NULL); + free_root_node(old4, lock); + free_root_node(old6, lock); } int allowedips_insert_v4(struct allowedips *table, const struct in_addr *ip, u8 cidr, struct wireguard_peer *peer, struct mutex *lock) |