diff --git a/core/hdd/src/wlan_hdd_spectralscan.c b/core/hdd/src/wlan_hdd_spectralscan.c index 8c527e8481a0..999ac6da6c45 100644 --- a/core/hdd/src/wlan_hdd_spectralscan.c +++ b/core/hdd/src/wlan_hdd_spectralscan.c @@ -54,6 +54,8 @@ static int __wlan_hdd_cfg80211_spectral_scan_start(struct wiphy *wiphy, { int ret; struct hdd_context *hdd_ctx = wiphy_priv(wiphy); + struct net_device *dev = wdev->netdev; + struct hdd_adapter *adapter; hdd_enter(); @@ -66,6 +68,12 @@ static int __wlan_hdd_cfg80211_spectral_scan_start(struct wiphy *wiphy, return -EPERM; } + adapter = WLAN_HDD_GET_PRIV_PTR(dev); + if (wlan_hdd_validate_session_id(adapter->session_id)) { + hdd_err("invalid session id: %d", adapter->session_id); + return -EINVAL; + } + ret = wlan_cfg80211_spectral_scan_config_and_start(wiphy, hdd_ctx->hdd_pdev, data, data_len);