From 7637d0f250539cabae74fa37da85b3b9d23c19b7 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Fri, 18 Aug 2023 20:40:12 +0300 Subject: [PATCH] P2P: Do not filter pref_freq_list if the driver does not provide one wpa_drv_get_pref_freq_list() may fail and the 6 GHz channel removal should not be done unless the operation actually succeeded. The previous implementation ended up processing uninitialized data. This did not really result in any observable misbehavior since the result was not used, but this showed up as a failed test case when running tests with valgrind. Fixes: f0cdacacb356 ("P2P: Allow connection on 6 GHz channels if requested") Signed-off-by: Jouni Malinen --- wpa_supplicant/p2p_supplicant.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 9c6e24d6f..e60beda72 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -6263,7 +6263,7 @@ static int wpas_p2p_select_go_freq(struct wpa_supplicant *wpa_s, int freq) res = wpa_drv_get_pref_freq_list(wpa_s, WPA_IF_P2P_GO, &size, pref_freq_list); - if (!is_p2p_allow_6ghz(wpa_s->global->p2p)) + if (!res && size > 0 && !is_p2p_allow_6ghz(wpa_s->global->p2p)) size = p2p_remove_6ghz_channels(pref_freq_list, size); if (!res && size > 0) {