Skip to content

Commit

Permalink
netrom: zero length frame filtering in NetRom
Browse files Browse the repository at this point in the history
A zero length frame filter was recently introduced in ROSE protocole.
Previous commit makes the same at AX25 protocole level.
This patch has the same purpose for NetRom  protocole.
The reason is that empty frames have no meaning in NetRom protocole.

Signed-off-by: Bernard Pidoux <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Bernard Pidoux authored and davem330 committed Mar 21, 2009
1 parent f99bcff commit a3ac80a
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion net/netrom/af_netrom.c
Original file line number Diff line number Diff line change
Expand Up @@ -1037,6 +1037,10 @@ static int nr_sendmsg(struct kiocb *iocb, struct socket *sock,
unsigned char *asmptr;
int size;

/* Netrom 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;

Expand Down Expand Up @@ -1167,6 +1171,11 @@ static int nr_recvmsg(struct kiocb *iocb, struct socket *sock,
skb_reset_transport_header(skb);
copied = skb->len;

/* NetRom empty data frame has no meaning : ignore it */
if (copied == 0) {
goto out;
}

if (copied > size) {
copied = size;
msg->msg_flags |= MSG_TRUNC;
Expand All @@ -1182,7 +1191,7 @@ static int nr_recvmsg(struct kiocb *iocb, struct socket *sock,

msg->msg_namelen = sizeof(*sax);

skb_free_datagram(sk, skb);
out: skb_free_datagram(sk, skb);

release_sock(sk);
return copied;
Expand Down

0 comments on commit a3ac80a

Please sign in to comment.