lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 2 Apr 2021 20:05:03 +0800
From:   kernel test robot <lkp@...el.com>
To:     Fabio Aiuto <fabioaiuto83@...il.com>, gregkh@...uxfoundation.org
Cc:     kbuild-all@...ts.01.org, dan.carpenter@...cle.com, joe@...ches.com,
        linux-staging@...ts.linux.dev, linux-kernel@...r.kernel.org,
        Fabio Aiuto <fabioaiuto83@...il.com>
Subject: Re: [PATCH 14/16] staging: rtl8723bs: remove all RT_TRACE logs in
 core/rtw_wlan_util.c

Hi Fabio,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on staging/staging-testing]

url:    https://github.com/0day-ci/linux/commits/Fabio-Aiuto/staging-rtl8723bs-remove-RT_TRACE-logs-in-core/20210402-180617
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 305271ab4f54f9ae7b9080473d1699c9511ae235
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/82938cd5ff3eee363edd3d213473b248daa1be0c
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Fabio-Aiuto/staging-rtl8723bs-remove-RT_TRACE-logs-in-core/20210402-180617
        git checkout 82938cd5ff3eee363edd3d213473b248daa1be0c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

   drivers/staging/rtl8723bs/core/rtw_wlan_util.c: In function 'rtw_check_bcn_info':
>> drivers/staging/rtl8723bs/core/rtw_wlan_util.c:1379:5: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
    1379 |     ;
         |     ^
   drivers/staging/rtl8723bs/core/rtw_wlan_util.c:1386:6: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
    1386 |      ;
         |      ^
   drivers/staging/rtl8723bs/core/rtw_wlan_util.c: In function 'process_addba_req':
   drivers/staging/rtl8723bs/core/rtw_wlan_util.c:1776:11: warning: variable 'start_seq' set but not used [-Wunused-but-set-variable]
    1776 |  u16 tid, start_seq, param;
         |           ^~~~~~~~~
   In file included from drivers/staging/rtl8723bs/include/drv_types.h:33,
                    from drivers/staging/rtl8723bs/core/rtw_wlan_util.c:9:
   At top level:
   drivers/staging/rtl8723bs/include/rtw_security.h:336:28: warning: 'K' defined but not used [-Wunused-const-variable=]
     336 | static const unsigned long K[64] = {
         |                            ^


vim +/if +1379 drivers/staging/rtl8723bs/core/rtw_wlan_util.c

  1213	
  1214	int rtw_check_bcn_info(struct adapter *Adapter, u8 *pframe, u32 packet_len)
  1215	{
  1216		unsigned int len;
  1217		unsigned char *p;
  1218		unsigned short	val16, subtype;
  1219		struct wlan_network *cur_network = &(Adapter->mlmepriv.cur_network);
  1220		/* u8 wpa_ie[255], rsn_ie[255]; */
  1221		u16 wpa_len = 0, rsn_len = 0;
  1222		u8 encryp_protocol = 0;
  1223		struct wlan_bssid_ex *bssid;
  1224		int group_cipher = 0, pairwise_cipher = 0, is_8021x = 0;
  1225		unsigned char *pbuf;
  1226		u32 wpa_ielen = 0;
  1227		u8 *pbssid = GetAddr3Ptr(pframe);
  1228		struct HT_info_element *pht_info = NULL;
  1229		struct ieee80211_ht_cap *pht_cap = NULL;
  1230		u32 bcn_channel;
  1231		unsigned short	ht_cap_info;
  1232		unsigned char ht_info_infos_0;
  1233		struct mlme_priv *pmlmepriv = &Adapter->mlmepriv;
  1234		int ssid_len;
  1235	
  1236		if (is_client_associated_to_ap(Adapter) == false)
  1237			return true;
  1238	
  1239		len = packet_len - sizeof(struct ieee80211_hdr_3addr);
  1240	
  1241		if (len > MAX_IE_SZ) {
  1242			DBG_871X("%s IE too long for survey event\n", __func__);
  1243			return _FAIL;
  1244		}
  1245	
  1246		if (memcmp(cur_network->network.MacAddress, pbssid, 6)) {
  1247			DBG_871X("Oops: rtw_check_network_encrypt linked but recv other bssid bcn %pM %pM\n",
  1248					MAC_ARG(pbssid), MAC_ARG(cur_network->network.MacAddress));
  1249			return true;
  1250		}
  1251	
  1252		bssid = rtw_zmalloc(sizeof(struct wlan_bssid_ex));
  1253		if (!bssid) {
  1254			DBG_871X("%s rtw_zmalloc fail !!!\n", __func__);
  1255			return true;
  1256		}
  1257	
  1258		if ((pmlmepriv->timeBcnInfoChkStart != 0) && (jiffies_to_msecs(jiffies - pmlmepriv->timeBcnInfoChkStart) > DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS)) {
  1259			pmlmepriv->timeBcnInfoChkStart = 0;
  1260			pmlmepriv->NumOfBcnInfoChkFail = 0;
  1261		}
  1262	
  1263		subtype = GetFrameSubType(pframe) >> 4;
  1264	
  1265		if (subtype == WIFI_BEACON)
  1266			bssid->Reserved[0] = 1;
  1267	
  1268		bssid->Length = sizeof(struct wlan_bssid_ex) - MAX_IE_SZ + len;
  1269	
  1270		/* below is to copy the information element */
  1271		bssid->IELength = len;
  1272		memcpy(bssid->IEs, (pframe + sizeof(struct ieee80211_hdr_3addr)), bssid->IELength);
  1273	
  1274		/* check bw and channel offset */
  1275		/* parsing HT_CAP_IE */
  1276		p = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, WLAN_EID_HT_CAPABILITY, &len, bssid->IELength - _FIXED_IE_LENGTH_);
  1277		if (p && len > 0) {
  1278				pht_cap = (struct ieee80211_ht_cap *)(p + 2);
  1279				ht_cap_info = le16_to_cpu(pht_cap->cap_info);
  1280		} else {
  1281				ht_cap_info = 0;
  1282		}
  1283		/* parsing HT_INFO_IE */
  1284		p = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, WLAN_EID_HT_OPERATION, &len, bssid->IELength - _FIXED_IE_LENGTH_);
  1285		if (p && len > 0) {
  1286				pht_info = (struct HT_info_element *)(p + 2);
  1287				ht_info_infos_0 = pht_info->infos[0];
  1288		} else {
  1289				ht_info_infos_0 = 0;
  1290		}
  1291		if (ht_cap_info != cur_network->BcnInfo.ht_cap_info ||
  1292			((ht_info_infos_0&0x03) != (cur_network->BcnInfo.ht_info_infos_0&0x03))) {
  1293				DBG_871X("%s bcn now: ht_cap_info:%x ht_info_infos_0:%x\n", __func__,
  1294								ht_cap_info, ht_info_infos_0);
  1295				DBG_871X("%s bcn link: ht_cap_info:%x ht_info_infos_0:%x\n", __func__,
  1296								cur_network->BcnInfo.ht_cap_info, cur_network->BcnInfo.ht_info_infos_0);
  1297				DBG_871X("%s bw mode change\n", __func__);
  1298				{
  1299					/* bcn_info_update */
  1300					cur_network->BcnInfo.ht_cap_info = ht_cap_info;
  1301					cur_network->BcnInfo.ht_info_infos_0 = ht_info_infos_0;
  1302					/* to do : need to check that whether modify related register of BB or not */
  1303				}
  1304				/* goto _mismatch; */
  1305		}
  1306	
  1307		/* Checking for channel */
  1308		p = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, WLAN_EID_DS_PARAMS, &len, bssid->IELength - _FIXED_IE_LENGTH_);
  1309		if (p) {
  1310				bcn_channel = *(p + 2);
  1311		} else {/* In 5G, some ap do not have DSSET IE checking HT info for channel */
  1312				rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, WLAN_EID_HT_OPERATION, &len, bssid->IELength - _FIXED_IE_LENGTH_);
  1313				if (pht_info) {
  1314						bcn_channel = pht_info->primary_channel;
  1315				} else { /* we don't find channel IE, so don't check it */
  1316						/* DBG_871X("Oops: %s we don't find channel IE, so don't check it\n", __func__); */
  1317						bcn_channel = Adapter->mlmeextpriv.cur_channel;
  1318				}
  1319		}
  1320		if (bcn_channel != Adapter->mlmeextpriv.cur_channel) {
  1321				DBG_871X("%s beacon channel:%d cur channel:%d disconnect\n", __func__,
  1322							   bcn_channel, Adapter->mlmeextpriv.cur_channel);
  1323				goto _mismatch;
  1324		}
  1325	
  1326		/* checking SSID */
  1327		ssid_len = 0;
  1328		p = rtw_get_ie(bssid->IEs + _FIXED_IE_LENGTH_, WLAN_EID_SSID, &len, bssid->IELength - _FIXED_IE_LENGTH_);
  1329		if (p) {
  1330			ssid_len = *(p + 1);
  1331			if (ssid_len > NDIS_802_11_LENGTH_SSID)
  1332				ssid_len = 0;
  1333		}
  1334		memcpy(bssid->Ssid.Ssid, (p + 2), ssid_len);
  1335		bssid->Ssid.SsidLength = ssid_len;
  1336	
  1337		if (memcmp(bssid->Ssid.Ssid, cur_network->network.Ssid.Ssid, 32) ||
  1338				bssid->Ssid.SsidLength != cur_network->network.Ssid.SsidLength) {
  1339			if (bssid->Ssid.Ssid[0] != '\0' && bssid->Ssid.SsidLength != 0) { /* not hidden ssid */
  1340				DBG_871X("%s(), SSID is not match\n", __func__);
  1341				goto _mismatch;
  1342			}
  1343		}
  1344	
  1345		/* check encryption info */
  1346		val16 = rtw_get_capability((struct wlan_bssid_ex *)bssid);
  1347	
  1348		if (val16 & BIT(4))
  1349			bssid->Privacy = 1;
  1350		else
  1351			bssid->Privacy = 0;
  1352	
  1353		if (cur_network->network.Privacy != bssid->Privacy) {
  1354			DBG_871X("%s(), privacy is not match\n", __func__);
  1355			goto _mismatch;
  1356		}
  1357	
  1358		rtw_get_sec_ie(bssid->IEs, bssid->IELength, NULL, &rsn_len, NULL, &wpa_len);
  1359	
  1360		if (rsn_len > 0) {
  1361			encryp_protocol = ENCRYP_PROTOCOL_WPA2;
  1362		} else if (wpa_len > 0) {
  1363			encryp_protocol = ENCRYP_PROTOCOL_WPA;
  1364		} else {
  1365			if (bssid->Privacy)
  1366				encryp_protocol = ENCRYP_PROTOCOL_WEP;
  1367		}
  1368	
  1369		if (cur_network->BcnInfo.encryp_protocol != encryp_protocol) {
  1370			DBG_871X("%s(): enctyp is not match\n", __func__);
  1371			goto _mismatch;
  1372		}
  1373	
  1374		if (encryp_protocol == ENCRYP_PROTOCOL_WPA || encryp_protocol == ENCRYP_PROTOCOL_WPA2) {
  1375			pbuf = rtw_get_wpa_ie(&bssid->IEs[12], &wpa_ielen, bssid->IELength-12);
  1376			if (pbuf && (wpa_ielen > 0)) {
  1377				if (rtw_parse_wpa_ie(pbuf, wpa_ielen + 2, &group_cipher,
  1378						     &pairwise_cipher, &is_8021x) == _SUCCESS)
> 1379					;
  1380			} else {
  1381				pbuf = rtw_get_wpa2_ie(&bssid->IEs[12], &wpa_ielen, bssid->IELength-12);
  1382	
  1383				if (pbuf && (wpa_ielen > 0)) {
  1384					if (rtw_parse_wpa2_ie(pbuf, wpa_ielen + 2, &group_cipher,
  1385							      &pairwise_cipher, &is_8021x) == _SUCCESS)
  1386						;
  1387				}
  1388			}
  1389	
  1390			if (pairwise_cipher != cur_network->BcnInfo.pairwise_cipher || group_cipher != cur_network->BcnInfo.group_cipher) {
  1391				DBG_871X("%s pairwise_cipher(%x:%x) or group_cipher(%x:%x) is not match\n", __func__,
  1392						pairwise_cipher, cur_network->BcnInfo.pairwise_cipher,
  1393						group_cipher, cur_network->BcnInfo.group_cipher);
  1394				goto _mismatch;
  1395			}
  1396	
  1397			if (is_8021x != cur_network->BcnInfo.is_8021x) {
  1398				DBG_871X("%s authentication is not match\n", __func__);
  1399				goto _mismatch;
  1400			}
  1401		}
  1402	
  1403		kfree(bssid);
  1404		return _SUCCESS;
  1405	
  1406	_mismatch:
  1407		kfree(bssid);
  1408	
  1409		if (pmlmepriv->NumOfBcnInfoChkFail == 0)
  1410			pmlmepriv->timeBcnInfoChkStart = jiffies;
  1411	
  1412		pmlmepriv->NumOfBcnInfoChkFail++;
  1413		DBG_871X("%s by %s - NumOfChkFail = %d (SeqNum of this Beacon frame = %d).\n", __func__, ADPT_ARG(Adapter), pmlmepriv->NumOfBcnInfoChkFail, GetSequence(pframe));
  1414	
  1415		if ((pmlmepriv->timeBcnInfoChkStart != 0) && (jiffies_to_msecs(jiffies - pmlmepriv->timeBcnInfoChkStart) <= DISCONNECT_BY_CHK_BCN_FAIL_OBSERV_PERIOD_IN_MS)
  1416			&& (pmlmepriv->NumOfBcnInfoChkFail >= DISCONNECT_BY_CHK_BCN_FAIL_THRESHOLD)) {
  1417			DBG_871X("%s by %s - NumOfChkFail = %d >= threshold : %d (in %d ms), return FAIL.\n", __func__, ADPT_ARG(Adapter), pmlmepriv->NumOfBcnInfoChkFail,
  1418				DISCONNECT_BY_CHK_BCN_FAIL_THRESHOLD, jiffies_to_msecs(jiffies - pmlmepriv->timeBcnInfoChkStart));
  1419			pmlmepriv->timeBcnInfoChkStart = 0;
  1420			pmlmepriv->NumOfBcnInfoChkFail = 0;
  1421			return _FAIL;
  1422		}
  1423	
  1424		return _SUCCESS;
  1425	}
  1426	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (59887 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ