Patchwork netrom: copy_datagram_iovec can fail

login
register
mail settings
Submitter Alan Cox
Date Sept. 4, 2012, 2:13 p.m.
Message ID <20120904141315.26374.38822.stgit@localhost.localdomain>
Download mbox | patch
Permalink /patch/181562/
State Accepted
Delegated to: David Miller
Headers show

Comments

Alan Cox - Sept. 4, 2012, 2:13 p.m.
From: Alan Cox <alan@linux.intel.com>

Check for an error from this and if so bail properly.

Signed-off-by: Alan Cox <alan@linux.intel.com>
---

 net/netrom/af_netrom.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Sept. 4, 2012, 4:58 p.m.
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
Date: Tue, 04 Sep 2012 15:13:18 +0100

> From: Alan Cox <alan@linux.intel.com>
> 
> Check for an error from this and if so bail properly.
> 
> Signed-off-by: Alan Cox <alan@linux.intel.com>

Applied and queued up for -stable, thanks Alan.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index 06592d8..1b9024e 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -1169,7 +1169,12 @@  static int nr_recvmsg(struct kiocb *iocb, struct socket *sock,
 		msg->msg_flags |= MSG_TRUNC;
 	}
 
-	skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);
+	er = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);
+	if (er < 0) {
+		skb_free_datagram(sk, skb);
+		release_sock(sk);
+		return er;
+	}
 
 	if (sax != NULL) {
 		sax->sax25_family = AF_NETROM;