staging: r8188eu: add kfree() on an error path of rtw_xmit_resource_alloc()
authorXiaoke Wang <xkernel.wang@foxmail.com>
Mon, 12 Sep 2022 02:50:26 +0000 (10:50 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Sep 2022 11:08:41 +0000 (13:08 +0200)
In rtw_xmit_resource_alloc(), if usb_alloc_urb() fails, then the memory
`pxmitbuf->pallocated_buf` which is allocated by kzalloc() is not properly
released before returning.
So this patch adds kfree() on the above error path to release it in time.

Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Reviewed-by: Martin Kaiser <martin@kaiser.cx>
Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
Link: https://lore.kernel.org/r/tencent_3B46EE3287288555389AD2EC3F388827B306@qq.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/core/rtw_xmit.c

index 98864fc55b255ed75c379759cb597b72869be50e..13ecd108c86b671d08c4216918c619350afeaf9d 100644 (file)
@@ -44,8 +44,10 @@ static int rtw_xmit_resource_alloc(struct adapter *padapter, struct xmit_buf *px
        pxmitbuf->dma_transfer_addr = 0;
 
        pxmitbuf->pxmit_urb = usb_alloc_urb(0, GFP_KERNEL);
-       if (!pxmitbuf->pxmit_urb)
+       if (!pxmitbuf->pxmit_urb) {
+               kfree(pxmitbuf->pallocated_buf);
                return _FAIL;
+       }
 
        return _SUCCESS;
 }