staging: r8188eu: fix a memory leak in rtw_wx_read32()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 9 Nov 2021 11:49:36 +0000 (14:49 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Dec 2021 08:04:41 +0000 (09:04 +0100)
commit be4ea8f383551b9dae11b8dfff1f38b3b5436e9a upstream.

Free "ptmp" before returning -EINVAL.

Fixes: 2b42bd58b321 ("staging: r8188eu: introduce new os_dep dir for RTL8188eu driver")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20211109114935.GC16587@kili
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/os_dep/ioctl_linux.c

index 013c322b98a2d4edcc74c8b472d20f6cce540ad5..0eccce57c63a6804508bae0697e72b6b4b5db278 100644 (file)
@@ -2061,6 +2061,7 @@ static int rtw_wx_read32(struct net_device *dev,
        u32 data32;
        u32 bytes;
        u8 *ptmp;
+       int ret;
 
        padapter = (struct adapter *)rtw_netdev_priv(dev);
        p = &wrqu->data;
@@ -2093,12 +2094,17 @@ static int rtw_wx_read32(struct net_device *dev,
                break;
        default:
                DBG_88E(KERN_INFO "%s: usage> read [bytes],[address(hex)]\n", __func__);
-               return -EINVAL;
+               ret = -EINVAL;
+               goto err_free_ptmp;
        }
        DBG_88E(KERN_INFO "%s: addr = 0x%08X data =%s\n", __func__, addr, extra);
 
        kfree(ptmp);
        return 0;
+
+err_free_ptmp:
+       kfree(ptmp);
+       return ret;
 }
 
 static int rtw_wx_write32(struct net_device *dev,