diff options
author | Hendrik Brueckner <brueckner@linux.vnet.ibm.com> | 2009-04-21 08:04:22 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-22 08:43:14 +0200 |
commit | fe86e54ef9465c97a16337d2a41a4cf486b937ae (patch) | |
tree | 716996d116737a0acf6bcb714cb52a63f6095d43 /net | |
parent | af_iucv: fix oops in iucv_sock_recvmsg() for MSG_PEEK flag (diff) | |
download | linux-fe86e54ef9465c97a16337d2a41a4cf486b937ae.tar.xz linux-fe86e54ef9465c97a16337d2a41a4cf486b937ae.zip |
af_iucv: Reject incoming msgs if RECV_SHUTDOWN is set
Reject incoming iucv messages if the receive direction has been shut down.
It avoids that the queue of outstanding messages increases and exceeds the
message limit of the iucv communication path.
Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/iucv/af_iucv.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c index 42b3be302c57..ee517108856e 100644 --- a/net/iucv/af_iucv.c +++ b/net/iucv/af_iucv.c @@ -1116,8 +1116,10 @@ static void iucv_callback_rx(struct iucv_path *path, struct iucv_message *msg) struct sock_msg_q *save_msg; int len; - if (sk->sk_shutdown & RCV_SHUTDOWN) + if (sk->sk_shutdown & RCV_SHUTDOWN) { + iucv_message_reject(path, msg); return; + } if (!list_empty(&iucv->message_q.list) || !skb_queue_empty(&iucv->backlog_skb_q)) |