diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-08-01 03:53:09 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-08-01 05:53:31 +0200 |
commit | 97919beadae1fd9f4b2769233cd6704a1a520450 (patch) | |
tree | 8fc60974b039da350dd9530df6be9d306200acac /src/queueing.c | |
parent | 9afa21904205a155ad6440896c409bd2c731e1e5 (diff) |
allowedips: prevent double read in kref
Blocks like:
if (node_placement(*trie, key, cidr, bits, &node, lock)) {
node->peer = peer;
return 0;
}
May result in a double read when adjusting the refcount, in the highly
unlikely case of LTO and an overly smart compiler.
While we're at it, replace rcu_assign_pointer(X, NULL); with
RCU_INIT_POINTER.
Reported-by: Jann Horn <jann@thejh.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'src/queueing.c')
0 files changed, 0 insertions, 0 deletions