aboutsummaryrefslogtreecommitdiff
path: root/net/ax25/af_ax25.c
diff options
context:
space:
mode:
authorGravatar Basil Gunn <basil@pacabunga.com> 2016-06-16 09:42:30 -0700
committerGravatar David S. Miller <davem@davemloft.net> 2016-06-18 20:55:34 -0700
commit4a7d99ea1b27734558feb6833f180cd38a159940 (patch)
tree3ef63dc61cd8243272b86213c933335b9f1bcb12 /net/ax25/af_ax25.c
parentRDS: TCP: rds_tcp_accept_one() should transition socket from RESETTING to UP (diff)
downloadlinux-4a7d99ea1b27734558feb6833f180cd38a159940.tar.gz
linux-4a7d99ea1b27734558feb6833f180cd38a159940.tar.bz2
linux-4a7d99ea1b27734558feb6833f180cd38a159940.zip
AX.25: Close socket connection on session completion
A socket connection made in ax.25 is not closed when session is completed. The heartbeat timer is stopped prematurely and this is where the socket gets closed. Allow heatbeat timer to run to close socket. Symptom occurs in kernels >= 4.2.0 Originally sent 6/15/2016. Resend with distribution list matching scripts/maintainer.pl output. Signed-off-by: Basil Gunn <basil@pacabunga.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ax25/af_ax25.c')
-rw-r--r--net/ax25/af_ax25.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index fbd0acf80b13..2fdebabbfacd 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -976,7 +976,8 @@ static int ax25_release(struct socket *sock)
release_sock(sk);
ax25_disconnect(ax25, 0);
lock_sock(sk);
- ax25_destroy_socket(ax25);
+ if (!sock_flag(ax25->sk, SOCK_DESTROY))
+ ax25_destroy_socket(ax25);
break;
case AX25_STATE_3: