From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Thu, 1 Sep 2011 17:23:21 +0000 (-0500)
Subject: staging: rtl8192e: Fix various problems noted by smatch
X-Git-Tag: firefly_0821_release~3680^2~4313^2^2~681
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d7613e535e9892ff12aa31b3c62f1be839546ff9;p=firefly-linux-kernel-4.4.55.git

staging: rtl8192e: Fix various problems noted by smatch

Smatch reports the following problems:

  CHECK   drivers/staging/rtl8192e/rtllib_softmac.c
drivers/staging/rtl8192e/rtllib_softmac.c +3143 rtllib_softmac_free(4) info: redundant null check on ieee->pDot11dInfo calling kfree()

  CHECK   drivers/staging/rtl8192e/rtllib_module.c
drivers/staging/rtl8192e/rtllib_module.c +198 free_rtllib(6) info: redundant null check on ieee->pHTInfo calling kfree()

  CHECK   drivers/staging/rtl8192e/rtl819x_TSProc.c
drivers/staging/rtl8192e/rtl819x_TSProc.c +280 SearchAdmitTRStream(52) error: potential null derefence 'pRet'.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---

diff --git a/drivers/staging/rtl8192e/rtl819x_TSProc.c b/drivers/staging/rtl8192e/rtl819x_TSProc.c
index 5323a9c7bcad..09a602f74329 100644
--- a/drivers/staging/rtl8192e/rtl819x_TSProc.c
+++ b/drivers/staging/rtl8192e/rtl819x_TSProc.c
@@ -277,7 +277,7 @@ static struct ts_common_info *SearchAdmitTRStream(struct rtllib_device *ieee,
 			break;
 	}
 
-	if (&pRet->List  != psearch_list)
+	if (pRet && &pRet->List  != psearch_list)
 		return pRet ;
 	else
 		return NULL;
diff --git a/drivers/staging/rtl8192e/rtllib_module.c b/drivers/staging/rtl8192e/rtllib_module.c
index 0fe67a54edd2..c36a140a4568 100644
--- a/drivers/staging/rtl8192e/rtllib_module.c
+++ b/drivers/staging/rtl8192e/rtllib_module.c
@@ -194,10 +194,9 @@ void free_rtllib(struct net_device *dev)
 	struct rtllib_device *ieee = (struct rtllib_device *)
 				      netdev_priv_rsl(dev);
 	int i;
-	if (ieee->pHTInfo != NULL) {
-		kfree(ieee->pHTInfo);
-		ieee->pHTInfo = NULL;
-	}
+
+	kfree(ieee->pHTInfo);
+	ieee->pHTInfo = NULL;
 	rtllib_softmac_free(ieee);
 	del_timer_sync(&ieee->crypt_deinit_timer);
 	rtllib_crypt_deinit_entries(ieee, 1);
diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
index a420ed1a9479..b5086850f0de 100644
--- a/drivers/staging/rtl8192e/rtllib_softmac.c
+++ b/drivers/staging/rtl8192e/rtllib_softmac.c
@@ -3139,10 +3139,8 @@ void rtllib_softmac_init(struct rtllib_device *ieee)
 void rtllib_softmac_free(struct rtllib_device *ieee)
 {
 	down(&ieee->wx_sem);
-	if (NULL != ieee->pDot11dInfo) {
-		kfree(ieee->pDot11dInfo);
-		ieee->pDot11dInfo = NULL;
-	}
+	kfree(ieee->pDot11dInfo);
+	ieee->pDot11dInfo = NULL;
 	del_timer_sync(&ieee->associate_timer);
 
 	cancel_delayed_work(&ieee->associate_retry_wq);