diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-08-02 04:11:52 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-08-02 07:40:26 +0200 |
commit | ba6f777cbfee4f6aa7b665cc40287685d995bc41 (patch) | |
tree | 597dc23dfa69baeb03e3437b98a479a493093f0f /src/noise.c | |
parent | queueing: ensure strictly ordered loads and stores (diff) | |
download | wireguard-monolithic-historical-ba6f777cbfee4f6aa7b665cc40287685d995bc41.tar.xz wireguard-monolithic-historical-ba6f777cbfee4f6aa7b665cc40287685d995bc41.zip |
cookie: returned keypair might disappear if rcu lock not held
And in general it's good to prefer dereferencing entry.peer from a
handshake object rather than a keypair object, when possible, since
keypairs could disappear before their underlying peer.
Diffstat (limited to 'src/noise.c')
-rw-r--r-- | src/noise.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/noise.c b/src/noise.c index c7a55e0..a8f2fa0 100644 --- a/src/noise.c +++ b/src/noise.c @@ -637,7 +637,7 @@ bool noise_handshake_begin_session(struct noise_handshake *handshake, struct noi handshake_zero(handshake); add_new_keypair(keypairs, new_keypair); - net_dbg_ratelimited("%s: Keypair %llu created for peer %llu\n", new_keypair->entry.peer->device->dev->name, new_keypair->internal_id, new_keypair->entry.peer->internal_id); + net_dbg_ratelimited("%s: Keypair %llu created for peer %llu\n", handshake->entry.peer->device->dev->name, new_keypair->internal_id, handshake->entry.peer->internal_id); WARN_ON(!index_hashtable_replace(&handshake->entry.peer->device->index_hashtable, &handshake->entry, &new_keypair->entry)); up_write(&handshake->lock); |