patch-2.1.16 linux/net/unix/af_unix.c

Next file: linux/net/x25/Makefile
Previous file: linux/net/socket.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.15/linux/net/unix/af_unix.c linux/net/unix/af_unix.c
@@ -855,7 +855,7 @@
 		newsk->protinfo.af_unix.inode=sk->protinfo.af_unix.inode;
 	}
 		
-	do
+	for (;;)
 	{
 		skb=skb_dequeue(&sk->receive_queue);
 		if(skb==NULL)
@@ -865,15 +865,17 @@
 			interruptible_sleep_on(sk->sleep);
 			if(current->signal & ~current->blocked)
 				return -ERESTARTSYS;
+			continue;
 		}
 		if (!(UNIXCB(skb).attr & MSG_SYN))
 		{
 			tsk=skb->sk;
 			tsk->state_change(tsk);
 			kfree_skb(skb, FREE_WRITE);
-			skb = NULL;
+			continue;
 		}
-	} while(skb==NULL);
+		break;
+	}
 
 	tsk=skb->sk;
 	sk->ack_backlog--;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov