tcp: send_reset: test for non-NULL sk first
authorFlorian Westphal <fw@strlen.de>
Mon, 21 Dec 2015 20:29:25 +0000 (21:29 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 22 Dec 2015 22:03:05 +0000 (17:03 -0500)
commite46787f0dd9385449fd77246d4fddb8634350af8
tree783c1b9f021304da5fe038a4b396a8a59b1a2837
parentb1f0a0e99c58fbd7ea053ca36ba623718272b618
tcp: send_reset: test for non-NULL sk first

tcp_md5_do_lookup requires a full socket, so once we extend
_send_reset() to also accept timewait socket we would have to change

if (!sk && hash_location)

to something like

if ((!sk || !sk_fullsock(sk)) && hash_location) {
  ...
} else {
  (sk && sk_fullsock(sk)) tcp_md5_do_lookup()
}

Switch the two branches: check if we have a socket first, then
fall back to a listener lookup if we saw a md5 option (hash_location).

Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c