提交 98400935 编写于 作者: L Larry Finger 提交者: Greg Kroah-Hartman

staging: r8188eu: Fix smatch warnings in core/rtw_recv.c

Smatch reports the following:
drivers/staging/rtl8188eu/core/rtw_recv.c:211 rtw_free_recvframe() warn: variable dereferenced before check 'precvframe' (see line 207)
drivers/staging/rtl8188eu/core/rtw_recv.c:1803 amsdu_to_msdu() warn: variable dereferenced before check 'sub_skb' (see line 1784)

The code was rearranged to eliminate the dereference before the check.
Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 937ebbde
...@@ -204,12 +204,14 @@ void rtw_init_recvframe(union recv_frame *precvframe, struct recv_priv *precvpri ...@@ -204,12 +204,14 @@ void rtw_init_recvframe(union recv_frame *precvframe, struct recv_priv *precvpri
int rtw_free_recvframe(union recv_frame *precvframe, struct __queue *pfree_recv_queue) int rtw_free_recvframe(union recv_frame *precvframe, struct __queue *pfree_recv_queue)
{ {
unsigned long irqL; unsigned long irqL;
struct adapter *padapter = precvframe->u.hdr.adapter; struct adapter *padapter;
struct recv_priv *precvpriv = &padapter->recvpriv; struct recv_priv *precvpriv;
_func_enter_; _func_enter_;
if (!precvframe) if (!precvframe)
return _FAIL; return _FAIL;
padapter = precvframe->u.hdr.adapter;
precvpriv = &padapter->recvpriv;
if (precvframe->u.hdr.pkt) { if (precvframe->u.hdr.pkt) {
dev_kfree_skb_any(precvframe->u.hdr.pkt);/* free skb by driver */ dev_kfree_skb_any(precvframe->u.hdr.pkt);/* free skb by driver */
precvframe->u.hdr.pkt = NULL; precvframe->u.hdr.pkt = NULL;
...@@ -1799,16 +1801,14 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe) ...@@ -1799,16 +1801,14 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe)
memcpy(skb_push(sub_skb, ETH_ALEN), pattrib->dst, ETH_ALEN); memcpy(skb_push(sub_skb, ETH_ALEN), pattrib->dst, ETH_ALEN);
} }
/* Indicat the packets to upper layer */ /* Indicate the packets to upper layer */
if (sub_skb) { /* Insert NAT2.5 RX here! */
/* Insert NAT2.5 RX here! */ sub_skb->protocol = eth_type_trans(sub_skb, padapter->pnetdev);
sub_skb->protocol = eth_type_trans(sub_skb, padapter->pnetdev); sub_skb->dev = padapter->pnetdev;
sub_skb->dev = padapter->pnetdev;
sub_skb->ip_summed = CHECKSUM_NONE; sub_skb->ip_summed = CHECKSUM_NONE;
netif_rx(sub_skb); netif_rx(sub_skb);
}
} }
exit: exit:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册