summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJia-Ju Bai <baijiaju1990@gmail.com>2021-03-08 01:13:55 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-03-17 16:43:44 +0100
commite8c9b54ff89e3d379a42fa4b5e37e56a96ea0cab (patch)
treef4b5eae9671dc452530c5cd086d88e41ce28a777
parent9808f032c4d971cbf2b01411a0a2a8ee0040efe3 (diff)
downloadlinux-stable-e8c9b54ff89e3d379a42fa4b5e37e56a96ea0cab.tar.gz
linux-stable-e8c9b54ff89e3d379a42fa4b5e37e56a96ea0cab.tar.bz2
linux-stable-e8c9b54ff89e3d379a42fa4b5e37e56a96ea0cab.zip
net: qrtr: fix error return code of qrtr_sendmsg()
commit 179d0ba0c454057a65929c46af0d6ad986754781 upstream. When sock_alloc_send_skb() returns NULL to skb, no error return code of qrtr_sendmsg() is assigned. To fix this bug, rc is assigned with -ENOMEM in this case. Fixes: 194ccc88297a ("net: qrtr: Support decoding incoming v2 packets") Reported-by: TOTE Robot <oslab@tsinghua.edu.cn> Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--net/qrtr/qrtr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c
index 69cf9cbbb05f..8f3e1f0a1781 100644
--- a/net/qrtr/qrtr.c
+++ b/net/qrtr/qrtr.c
@@ -797,8 +797,10 @@ static int qrtr_sendmsg(struct socket *sock, struct msghdr *msg, size_t len)
plen = (len + 3) & ~3;
skb = sock_alloc_send_skb(sk, plen + QRTR_HDR_MAX_SIZE,
msg->msg_flags & MSG_DONTWAIT, &rc);
- if (!skb)
+ if (!skb) {
+ rc = -ENOMEM;
goto out_node;
+ }
skb_reserve(skb, QRTR_HDR_MAX_SIZE);