staging: rtl8712: check for return value of _r8712_init_xmit_priv()
authorNam Cao <namcaov@gmail.com>
Tue, 25 Oct 2022 09:12:25 +0000 (11:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 31 Oct 2022 08:08:30 +0000 (09:08 +0100)
The return value of _r8712_init_xmit_priv() is never checked and the driver
always continue execution as if all is well. This will cause problems
if, for example, buffers cannot be allocated and the driver continue and
use those buffers.

Check for return value of _r8712_init_xmit_priv() and return error (if any)
during probing.

Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com>
Signed-off-by: Nam Cao <namcaov@gmail.com>
Link: https://lore.kernel.org/r/b550803561acf26af71f2377215c28b94435a644.1666688642.git.namcaov@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8712/os_intfs.c

index 12adb47..205b7d6 100644 (file)
@@ -308,7 +308,9 @@ int r8712_init_drv_sw(struct _adapter *padapter)
        ret = r8712_init_mlme_priv(padapter);
        if (ret)
                return ret;
-       _r8712_init_xmit_priv(&padapter->xmitpriv, padapter);
+       ret = _r8712_init_xmit_priv(&padapter->xmitpriv, padapter);
+       if (ret)
+               return ret;
        ret = _r8712_init_recv_priv(&padapter->recvpriv, padapter);
        if (ret)
                return ret;