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

Commit dce1a287 authored by Asias He's avatar Asias He Committed by David S. Miller
Browse files

VSOCK: Return VMCI_ERROR_NO_MEM when fails to allocate skb



vmci_transport_recv_dgram_cb always return VMCI_SUCESS even if we fail
to allocate skb, return VMCI_ERROR_NO_MEM instead.

Signed-off-by: default avatarAsias He <asias@redhat.com>
Acked-by: default avatarAndy King <acking@vmware.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b3a6dfe8
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -625,13 +625,14 @@ static int vmci_transport_recv_dgram_cb(void *data, struct vmci_datagram *dg)

	/* Attach the packet to the socket's receive queue as an sk_buff. */
	skb = alloc_skb(size, GFP_ATOMIC);
	if (skb) {
	if (!skb)
		return VMCI_ERROR_NO_MEM;

	/* sk_receive_skb() will do a sock_put(), so hold here. */
	sock_hold(sk);
	skb_put(skb, size);
	memcpy(skb->data, dg, size);
	sk_receive_skb(sk, skb, 0);
	}

	return VMCI_SUCCESS;
}