summaryrefslogtreecommitdiff
path: root/net/ipv4/tcp_rate.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2020-07-01 02:41:01 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-07-22 10:32:48 +0300
commit1c8bad567b5d4cd0b20744f7c011aabea0bf28b1 (patch)
treea741070a1515dc16645820e419e2a5235709848e /net/ipv4/tcp_rate.c
parentf52293aefe18516fafe3a3569914c2499419d501 (diff)
downloadlinux-1c8bad567b5d4cd0b20744f7c011aabea0bf28b1.tar.xz
tcp: md5: add missing memory barriers in tcp_md5_do_add()/tcp_md5_hash_key()
[ Upstream commit 6a2febec338df7e7699a52d00b2e1207dcf65b28 ] MD5 keys are read with RCU protection, and tcp_md5_do_add() might update in-place a prior key. Normally, typical RCU updates would allocate a new piece of memory. In this case only key->key and key->keylen might be updated, and we do not care if an incoming packet could see the old key, the new one, or some intermediate value, since changing the key on a live flow is known to be problematic anyway. We only want to make sure that in the case key->keylen is changed, cpus in tcp_md5_hash_key() wont try to use uninitialized data, or crash because key->keylen was read twice to feed sg_init_one() and ahash_request_set_crypt() Fixes: 9ea88a153001 ("tcp: md5: check md5 signature without socket lock") Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/ipv4/tcp_rate.c')
0 files changed, 0 insertions, 0 deletions