Looking at net/core/datagram.c:wait_for_packet the code will return 0
when the socket has been shutdown. That causes skb_recv_datagram to loop
which is in itself obviously incorrect for a shutdown socket (its in EOF
state)
I suspect it should read something like
/* Socket shut down? */
if (sk->shutdown & RCV_SHUTDOWN)
{
current->state = TASK_RUNNING;
remove_wait_queue(sk->sleep, &wait);
*err = 0;
return 1;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Wed Feb 07 2001 - 21:00:13 EST