staging: wilc1000: fix unchecked return value
authorPan Bian <bianpan2016@163.com>
Sun, 23 Apr 2017 11:53:58 +0000 (19:53 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Apr 2017 10:00:21 +0000 (12:00 +0200)
Function dev_alloc_skb() will return a NULL pointer if there is no
enough memory. However, in function WILC_WFI_mon_xmit(), its return
value is used without validation. This may result in a bad memory access
bug. This patch fixes the bug.

Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/linux_mon.c

index f328d75de0d120e6110638211ff2bb29815b3b2f..c9782d452b0701a332f8487e927991280639cf5d 100644 (file)
@@ -197,6 +197,8 @@ static netdev_tx_t WILC_WFI_mon_xmit(struct sk_buff *skb,
 
        if (skb->data[0] == 0xc0 && (!(memcmp(broadcast, &skb->data[4], 6)))) {
                skb2 = dev_alloc_skb(skb->len + sizeof(struct wilc_wfi_radiotap_cb_hdr));
+               if (!skb2)
+                       return -ENOMEM;
 
                memcpy(skb_put(skb2, skb->len), skb->data, skb->len);