Skip to content

Commit

Permalink
af_rose/x25: Sanity check the maximum user frame size
Browse files Browse the repository at this point in the history
Otherwise we can wrap the sizes and end up sending garbage.

Closes #10423

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Alan-Cox authored and davem330 committed Mar 27, 2009
1 parent 03ba999 commit 83e0bbc
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
6 changes: 5 additions & 1 deletion net/netrom/af_netrom.c
Original file line number Diff line number Diff line change
Expand Up @@ -1086,7 +1086,11 @@ static int nr_sendmsg(struct kiocb *iocb, struct socket *sock,

SOCK_DEBUG(sk, "NET/ROM: sendto: Addresses built.\n");

/* Build a packet */
/* Build a packet - the conventional user limit is 236 bytes. We can
do ludicrously large NetROM frames but must not overflow */
if (len > 65536)
return -EMSGSIZE;

SOCK_DEBUG(sk, "NET/ROM: sendto: building packet.\n");
size = len + NR_NETWORK_LEN + NR_TRANSPORT_LEN;

Expand Down
4 changes: 4 additions & 0 deletions net/rose/af_rose.c
Original file line number Diff line number Diff line change
Expand Up @@ -1124,6 +1124,10 @@ static int rose_sendmsg(struct kiocb *iocb, struct socket *sock,

/* Build a packet */
SOCK_DEBUG(sk, "ROSE: sendto: building packet.\n");
/* Sanity check the packet size */
if (len > 65535)
return -EMSGSIZE;

size = len + AX25_BPQ_HEADER_LEN + AX25_MAX_HEADER_LEN + ROSE_MIN_LEN;

if ((skb = sock_alloc_send_skb(sk, size, msg->msg_flags & MSG_DONTWAIT, &err)) == NULL)
Expand Down
6 changes: 6 additions & 0 deletions net/x25/af_x25.c
Original file line number Diff line number Diff line change
Expand Up @@ -1035,6 +1035,12 @@ static int x25_sendmsg(struct kiocb *iocb, struct socket *sock,
sx25.sx25_addr = x25->dest_addr;
}

/* Sanity check the packet size */
if (len > 65535) {
rc = -EMSGSIZE;
goto out;
}

SOCK_DEBUG(sk, "x25_sendmsg: sendto: Addresses built.\n");

/* Build a packet */
Expand Down

0 comments on commit 83e0bbc

Please sign in to comment.