Re: [PATCH 2/3] staging: rtl8712: add two validation check in r8712_init_drv_sw()

From: Greg KH
Date: Mon Apr 04 2022 - 10:29:57 EST


On Fri, Apr 01, 2022 at 01:07:45AM +0800, xkernel.wang@xxxxxxxxxxx wrote:
> From: Xiaoke Wang <xkernel.wang@xxxxxxxxxxx>
>
> _r8712_init_xmit_priv() or _r8712_init_recv_priv() returns -ENOMEM
> when some allocations inside it failed.
> So it is better to check the return status of them.
>
> Signed-off-by: Xiaoke Wang <xkernel.wang@xxxxxxxxxxx>
> ---
> drivers/staging/rtl8712/os_intfs.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c
> index 9502f6a..163baaa 100644
> --- a/drivers/staging/rtl8712/os_intfs.c
> +++ b/drivers/staging/rtl8712/os_intfs.c
> @@ -308,8 +308,12 @@ 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);
> - _r8712_init_recv_priv(&padapter->recvpriv, 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;

You just leaked memory :(

please please please test these types of "fix up error handling"
changes, as there are lots and lots of ways to get these wrong.

If you can not test them, provide some sort of proof that the change is
correct please.

thanks,

greg k-h