diff options
author | Jia-Ju Bai <baijiaju1990@gmail.com> | 2021-03-08 12:13:55 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-03-17 19:03:36 +0300 |
commit | e8b6c1d7ced2b728ae9b978da9578efc9ef6c5f0 (patch) | |
tree | 75e3f358697d4338b1419c27f0ae51583b413c35 /net/qrtr | |
parent | d28e783c20033b90a64d4e1307bafb56085d8184 (diff) | |
download | linux-e8b6c1d7ced2b728ae9b978da9578efc9ef6c5f0.tar.xz |
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>
Diffstat (limited to 'net/qrtr')
-rw-r--r-- | net/qrtr/qrtr.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c index ef602976bb2c..6e023e93d318 100644 --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -791,8 +791,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); |