net: diag: Fix refcnt leak in error path destroying socket
authorDavid Ahern <dsa@cumulusnetworks.com>
Wed, 24 Aug 2016 04:05:27 +0000 (21:05 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Aug 2016 06:11:36 +0000 (23:11 -0700)
commitd7226c7a4dd19929d6df4ae04698da2fcf6f875a
tree33b158ecdb0ed30ca22110588dc368b91a10f9ed
parent7b996243fab46092fb3a29c773c54be8152366e4
net: diag: Fix refcnt leak in error path destroying socket

inet_diag_find_one_icsk takes a reference to a socket that is not
released if sock_diag_destroy returns an error. Fix by changing
tcp_diag_destroy to manage the refcnt for all cases and remove
the sock_put calls from tcp_abort.

Fixes: c1e64e298b8ca ("net: diag: Support destroying TCP sockets")
Reported-by: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp.c
net/ipv4/tcp_diag.c