diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c index ddfd159f64e13ac020f0e8daf42f2bffdcb02767..3bcda3883c07ee2a7e555e284f5970fecf9b3463 100644 --- a/net/nfc/llcp_core.c +++ b/net/nfc/llcp_core.c @@ -1526,6 +1526,11 @@ static void nfc_llcp_rx_work(struct work_struct *work) static void __nfc_llcp_recv(struct nfc_llcp_local *local, struct sk_buff *skb) { + if (!pskb_may_pull(skb, LLCP_HEADER_SIZE)) { + kfree_skb(skb); + return; + } + local->rx_pending = skb; del_timer(&local->link_timer); schedule_work(&local->rx_work);