Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98400935 authored by Larry Finger's avatar Larry Finger Committed by Greg Kroah-Hartman
Browse files

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: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 937ebbde
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -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)
{
	unsigned long irqL;
	struct adapter *padapter = precvframe->u.hdr.adapter;
	struct recv_priv *precvpriv = &padapter->recvpriv;
	struct adapter *padapter;
	struct recv_priv *precvpriv;

_func_enter_;
	if (!precvframe)
		return _FAIL;
	padapter = precvframe->u.hdr.adapter;
	precvpriv = &padapter->recvpriv;
	if (precvframe->u.hdr.pkt) {
		dev_kfree_skb_any(precvframe->u.hdr.pkt);/* free skb by driver */
		precvframe->u.hdr.pkt = NULL;
@@ -1799,8 +1801,7 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe)
			memcpy(skb_push(sub_skb, ETH_ALEN), pattrib->dst, ETH_ALEN);
		}

		/* Indicat the packets to upper layer */
		if (sub_skb) {
		/* Indicate the packets to upper layer */
		/*  Insert NAT2.5 RX here! */
		sub_skb->protocol = eth_type_trans(sub_skb, padapter->pnetdev);
		sub_skb->dev = padapter->pnetdev;
@@ -1809,7 +1810,6 @@ static int amsdu_to_msdu(struct adapter *padapter, union recv_frame *prframe)

		netif_rx(sub_skb);
	}
	}

exit: