[WCNCR00151294] p2p: Fix CFG_P2P_SCAN_REPORT_ALL_BSS report incorrect len
[Description]
Fix CFG_P2P_SCAN_REPORT_ALL_BSS support will sometimes report incorrect
length to cfg80211 kernel problem
And this will cause kernel printing warning message:
WARNING: at /proj/mtk[dt02v_a472/tv_linux/DTV/DEV_BR/
e_IDTV1501_LINUX_PNSC_2K17_MP_BR/apollo/linux_core/kernel/
linux-3.10/net/wireless/scan.c:956 cfg80211_inform_bss_frame+0x58/0x174()
The solution is we should follow the infra scan logic to check
the length before indicating to cfg80211 kernel
Change-Id: I49189261ab26a3690ed53b2761a51c657a14b9d6
Signed-off-by: Sarick Jiang <sarick.jiang@mediatek.com>
CR-Id: WCNCR00151294
Feature: p2p
diff --git a/mgmt/scan.c b/mgmt/scan.c
index 1d5d91c..2e9ef97 100644
--- a/mgmt/scan.c
+++ b/mgmt/scan.c
@@ -2566,7 +2566,9 @@
}
} else {
#if CFG_ENABLE_WIFI_DIRECT
- if (prBssDesc->fgIsP2PReport == TRUE || prAdapter->p2p_scan_report_all_bss) {
+ if ((prBssDesc->fgIsP2PReport == TRUE ||
+ prAdapter->p2p_scan_report_all_bss) &&
+ prBssDesc->u2RawLength != 0) {
#endif
rChannelInfo.ucChannelNum = prBssDesc->ucChannelNum;
rChannelInfo.eBand = prBssDesc->eBand;