patch-1.3.30 linux/net/ax25/ax25_timer.c

Next file: linux/net/core/skbuff.c
Previous file: linux/net/ax25/ax25_subr.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.29/linux/net/ax25/ax25_timer.c linux/net/ax25/ax25_timer.c
@@ -52,8 +52,8 @@
  */
 void ax25_set_timer(ax25_cb *ax25)
 {
-	unsigned long flags;
-	
+	unsigned long flags;	
+
 	save_flags(flags);
 	cli();
 	del_timer(&ax25->timer);
@@ -96,7 +96,7 @@
 		case AX25_STATE_0:
 			/* Magic here: If we listen() and a new link dies before it
 			   is accepted() it isnt 'dead' so doesnt get removed. */
-			if ((ax25->sk != NULL && ax25->sk->dead) || ax25->sk == NULL) {
+			if (ax25->sk == NULL || ax25->sk->destroy || (ax25->sk->state == TCP_LISTEN && ax25->sk->dead)) {
 				del_timer(&ax25->timer);
 				ax25_destroy_socket(ax25);
 				return;

FUNET's LINUX-ADM group, [email protected]
TCL-scripts by Sam Shen, [email protected] with Sam's (original) version
of this