From df2f1063dd7c506c9790a60fd65cf1c22c1693b1 Mon Sep 17 00:00:00 2001 From: Bernard Pidoux Date: Sat, 21 Mar 2009 13:33:55 -0700 Subject: [PATCH] --- yaml --- r: 135349 b: refs/heads/master c: f99bcff7a290768e035f3d4726e103c6ebe858bf h: refs/heads/master i: 135347: ae1f37b3a2476fd96ba0ee980f1012e2f3165ce7 v: v3 --- [refs] | 2 +- trunk/net/ax25/af_ax25.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 45b6974b0d62..6bbce12229af 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 60784427ab331dc13c070ac4b0cc9a735bdfa9c0 +refs/heads/master: f99bcff7a290768e035f3d4726e103c6ebe858bf diff --git a/trunk/net/ax25/af_ax25.c b/trunk/net/ax25/af_ax25.c index fd9d06f291dc..7da5ebb84e97 100644 --- a/trunk/net/ax25/af_ax25.c +++ b/trunk/net/ax25/af_ax25.c @@ -1435,6 +1435,11 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock, size_t size; int lv, err, addr_len = msg->msg_namelen; + /* AX.25 empty data 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; @@ -1634,6 +1639,13 @@ static int ax25_recvmsg(struct kiocb *iocb, struct socket *sock, skb_reset_transport_header(skb); copied = skb->len; + /* AX.25 empty data frame has no meaning : ignore it */ + if (copied == 0) { + err = copied; + skb_free_datagram(sk, skb); + goto out; + } + if (copied > size) { copied = size; msg->msg_flags |= MSG_TRUNC;