diff --git a/net/mac802154/llsec.c b/net/mac802154/llsec.c index af6a7e39b7b7..7c8593d7abad 100644 --- a/net/mac802154/llsec.c +++ b/net/mac802154/llsec.c @@ -888,6 +888,11 @@ llsec_do_decrypt_auth(struct sk_buff *skb, const struct mac802154_llsec *sec, data = skb_mac_header(skb) + skb->mac_len; datalen = skb_tail_pointer(skb) - data; + if (datalen < authlen) { + kfree_sensitive(req); + return -EBADMSG; + } + sg_init_one(&sg, skb_mac_header(skb), assoclen + datalen); if (!(hdr->sec.level & IEEE802154_SCF_SECLEVEL_ENC)) {