On Tue, 2022-05-03 at 15:02 +0800, xkernel.wang@xxxxxxxxxxx wrote: > From: Xiaoke Wang <xkernel.wang@xxxxxxxxxxx> > > kzalloc() is a memory allocation function which can return NULL when > some internal memory errors happen. So it is better to handle the return > of it to prevent potential wrong memory access. > > Besides, to propagate the error to the caller, the type of > rtw_alloc_hwxmits() is changed to `int` and another check is added to > its caller. > Then if kzalloc() fails, the caller will properly jump to the > corresponding error hanlding code. It'd be better to use the typical error returns > diff --git a/drivers/staging/r8188eu/core/rtw_xmit.c b/drivers/staging/r8188eu/core/rtw_xmit.c [] > @@ -176,7 +176,9 @@ s32 _rtw_init_xmit_priv(struct xmit_priv *pxmitpriv, struct adapter *padapter) > > pxmitpriv->free_xmit_extbuf_cnt = num_xmit_extbuf; > > - rtw_alloc_hwxmits(padapter); > + res = rtw_alloc_hwxmits(padapter); > + if (res == _FAIL) > + goto free_xmit_extbuf; if (res) goto free_xmit_extbuf; [] > -void rtw_alloc_hwxmits(struct adapter *padapter) > +int rtw_alloc_hwxmits(struct adapter *padapter) > { > struct hw_xmit *hwxmits; > struct xmit_priv *pxmitpriv = &padapter->xmitpriv; > @@ -1495,6 +1497,8 @@ void rtw_alloc_hwxmits(struct adapter *padapter) > pxmitpriv->hwxmit_entry = HWXMIT_ENTRY; > > pxmitpriv->hwxmits = kzalloc(sizeof(struct hw_xmit) * pxmitpriv->hwxmit_entry, GFP_KERNEL); > + if (!pxmitpriv->hwxmits) return -ENOMEM;