diff options
author | Aydin Arik <aydin.arik@alliedtelesis.co.nz> | 2013-06-14 18:56:31 +1200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-19 21:21:53 -0700 |
commit | c0353c7b5da4cbd2ab8227e84bbc9c79890f24ce (patch) | |
tree | 6b4eb078174488b725ce9b87abe2b88bea359f73 /net | |
parent | f5351ef73e476d7019fcd7a1c4461a153f663b4b (diff) | |
download | linux-stable-c0353c7b5da4cbd2ab8227e84bbc9c79890f24ce.tar.gz linux-stable-c0353c7b5da4cbd2ab8227e84bbc9c79890f24ce.tar.bz2 linux-stable-c0353c7b5da4cbd2ab8227e84bbc9c79890f24ce.zip |
ipv4: Fixed MD5 key lookups when adding/ removing MD5 to/ from TCP sockets.
MD5 key lookups on a given TCP socket were being performed
incorrectly. This fix alters parameter inputs to the MD5
lookup function tcp_md5_do_lookup, which is called by functions
tcp_md5_do_add and tcp_md5_do_del. Specifically, the change now
inputs the correct address and address family required to make
a proper lookup.
Signed-off-by: Aydin Arik <aydin.arik@alliedtelesis.co.nz>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/tcp_ipv4.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 719652305a29..7999fc55c83b 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -1003,7 +1003,7 @@ int tcp_md5_do_add(struct sock *sk, const union tcp_md5_addr *addr, struct tcp_sock *tp = tcp_sk(sk); struct tcp_md5sig_info *md5sig; - key = tcp_md5_do_lookup(sk, (union tcp_md5_addr *)&addr, AF_INET); + key = tcp_md5_do_lookup(sk, addr, family); if (key) { /* Pre-existing entry - just update that one. */ memcpy(key->key, newkey, newkeylen); @@ -1048,7 +1048,7 @@ int tcp_md5_do_del(struct sock *sk, const union tcp_md5_addr *addr, int family) struct tcp_md5sig_key *key; struct tcp_md5sig_info *md5sig; - key = tcp_md5_do_lookup(sk, (union tcp_md5_addr *)&addr, AF_INET); + key = tcp_md5_do_lookup(sk, addr, family); if (!key) return -ENOENT; hlist_del_rcu(&key->node); |