OSDN Git Service

rsi: fix a dereference on adapter before it has been null checked
authorColin Ian King <colin.king@canonical.com>
Fri, 8 Sep 2017 15:24:52 +0000 (16:24 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 20 Sep 2017 12:40:16 +0000 (15:40 +0300)
The assignment of dev is dereferencing adapter before adapter has
been null checked, potentially leading to a null pointer dereference.
Fix this by simply moving the assignment of dev to a later point
after the sanity null check of adapter.

Detected by CoverityScan CID#1398383 ("Dereference before null check")

Fixes: dad0d04fa7ba ("rsi: Add RS9113 wireless driver")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/rsi/rsi_91x_usb.c

index 81df09d..0873022 100644 (file)
@@ -73,8 +73,7 @@ static int rsi_write_multiple(struct rsi_hw *adapter,
                              u8 *data,
                              u32 count)
 {
-       struct rsi_91x_usbdev *dev =
-               (struct rsi_91x_usbdev *)adapter->rsi_dev;
+       struct rsi_91x_usbdev *dev;
 
        if (!adapter)
                return -ENODEV;
@@ -82,6 +81,7 @@ static int rsi_write_multiple(struct rsi_hw *adapter,
        if (endpoint == 0)
                return -EINVAL;
 
+       dev = (struct rsi_91x_usbdev *)adapter->rsi_dev;
        if (dev->write_fail)
                return -ENETDOWN;