mt76: usb: fix possible NULL pointer dereference in mt76u_mcu_deinit
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Sun, 10 Feb 2019 21:49:13 +0000 (22:49 +0100)
committerFelix Fietkau <nbd@nbd.name>
Mon, 18 Feb 2019 18:55:49 +0000 (19:55 +0100)
Fix possible NULL pointer dereference in mt76u_mcu_deinit routine that
can occur if initialization path fails before calling mt76u_mcu_init_rx

Fixes: ee676cd5017c ("mt76: add driver code for MT76x2u based devices")
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/usb_mcu.c

index 036be41..9527e12 100644 (file)
@@ -48,9 +48,11 @@ EXPORT_SYMBOL_GPL(mt76u_mcu_init_rx);
 
 void mt76u_mcu_deinit(struct mt76_dev *dev)
 {
-       struct mt76_usb *usb = &dev->usb;
+       struct mt76u_buf *buf = &dev->usb.mcu.res;
 
-       usb_kill_urb(usb->mcu.res.urb);
-       mt76u_buf_free(&usb->mcu.res);
+       if (buf->urb) {
+               usb_kill_urb(buf->urb);
+               mt76u_buf_free(buf);
+       }
 }
 EXPORT_SYMBOL_GPL(mt76u_mcu_deinit);