Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5080da67 authored by Chris Lew's avatar Chris Lew
Browse files

net: qrtr: Handle error from skb_put_padto



skb_put_padto() will free the skb if it fails to add the requested
padding to the skb. Drop the packet if we are unable to allocate a new
skb with the requested padding.

Change-Id: I5503c99679c7e6ecf767d3f632d72da5315988f1
Signed-off-by: default avatarChris Lew <clew@codeaurora.org>
parent e5734f37
Loading
Loading
Loading
Loading
+6 −1
Original line number Original line Diff line number Diff line
@@ -606,8 +606,13 @@ static int qrtr_node_enqueue(struct qrtr_node *node, struct sk_buff *skb,
	hdr->size = cpu_to_le32(len);
	hdr->size = cpu_to_le32(len);
	hdr->confirm_rx = !!confirm_rx;
	hdr->confirm_rx = !!confirm_rx;


	skb_put_padto(skb, ALIGN(len, 4) + sizeof(*hdr));
	qrtr_log_tx_msg(node, hdr, skb);
	qrtr_log_tx_msg(node, hdr, skb);
	rc = skb_put_padto(skb, ALIGN(len, 4) + sizeof(*hdr));
	if (rc) {
		pr_err("%s: failed to pad size %lu to %lu rc:%d\n", __func__,
		       len, ALIGN(len, 4) + sizeof(*hdr), rc);
		return rc;
	}


	mutex_lock(&node->ep_lock);
	mutex_lock(&node->ep_lock);
	if (node->ep)
	if (node->ep)