From dfb80d0c3171bd46fb9515ba20320a811aee6ad2 Mon Sep 17 00:00:00 2001 From: Bernard Pidoux Date: Mon, 24 Nov 2008 11:49:40 +0000 Subject: [PATCH] --- yaml --- r: 119611 b: refs/heads/master c: 244f46ae6e9e18f6fc0be7d1f49febde4762c34b h: refs/heads/master i: 119609: d3b32f0797da51b607a49aee8230ab89035f0359 119607: 3de4171b3d65798c77e5abb3e5104c6f7d714e5f v: v3 --- [refs] | 2 +- trunk/net/rose/af_rose.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 8d2d1ed59307..95f50512d212 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 631339f1e544a4d39a63cfe6708c5bddcd5a2c48 +refs/heads/master: 244f46ae6e9e18f6fc0be7d1f49febde4762c34b diff --git a/trunk/net/rose/af_rose.c b/trunk/net/rose/af_rose.c index a7f1ce11bc22..0c1cc7612800 100644 --- a/trunk/net/rose/af_rose.c +++ b/trunk/net/rose/af_rose.c @@ -1072,6 +1072,10 @@ static int rose_sendmsg(struct kiocb *iocb, struct socket *sock, unsigned char *asmptr; int n, size, qbit = 0; + /* ROSE empty frame has no meaning : don't send */ + if (len == 0) + return 0; + if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR|MSG_CMSG_COMPAT)) return -EINVAL; @@ -1265,6 +1269,12 @@ static int rose_recvmsg(struct kiocb *iocb, struct socket *sock, skb_reset_transport_header(skb); copied = skb->len; + /* ROSE empty frame has no meaning : ignore it */ + if (copied == 0) { + skb_free_datagram(sk, skb); + return copied; + } + if (copied > size) { copied = size; msg->msg_flags |= MSG_TRUNC;