summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshawnlu <shawn.lu@ericsson.com>2012-01-20 12:22:04 +0000
committerDavid S. Miller <davem@davemloft.net>2012-01-22 15:08:45 -0500
commit8a622e71f58ec9f092fc99eacae0e6cf14f6e742 (patch)
treed0a19d7ad6672eb38a14b9d2cedf5fab690d18f4
parentdf505eb804d5221c3164ebecd1286cb7fc7f49ba (diff)
downloadlinux-3.10-8a622e71f58ec9f092fc99eacae0e6cf14f6e742.tar.gz
linux-3.10-8a622e71f58ec9f092fc99eacae0e6cf14f6e742.tar.bz2
linux-3.10-8a622e71f58ec9f092fc99eacae0e6cf14f6e742.zip
tcp: md5: using remote adress for md5 lookup in rst packet
md5 key is added in socket through remote address. remote address should be used in finding md5 key when sending out reset packet. Signed-off-by: shawnlu <shawn.lu@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/tcp_ipv4.c2
-rw-r--r--net/ipv6/tcp_ipv6.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 1eb4ad57670..337ba4cca05 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -631,7 +631,7 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)
arg.iov[0].iov_len = sizeof(rep.th);
#ifdef CONFIG_TCP_MD5SIG
- key = sk ? tcp_v4_md5_do_lookup(sk, ip_hdr(skb)->daddr) : NULL;
+ key = sk ? tcp_v4_md5_do_lookup(sk, ip_hdr(skb)->saddr) : NULL;
if (key) {
rep.opt[0] = htonl((TCPOPT_NOP << 24) |
(TCPOPT_NOP << 16) |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 906c7ca4354..3edd05ae438 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1083,7 +1083,7 @@ static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
#ifdef CONFIG_TCP_MD5SIG
if (sk)
- key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->daddr);
+ key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->saddr);
#endif
if (th->ack)