From d3cb7ebe1baac32adb034f6fc8b47e47b760c638 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Mon, 27 Nov 2017 20:20:26 +0200 Subject: [PATCH] DPP: Do not process dpp_auth_ok_on_ack multiple times An additional TX status callback could result in processing the DPP authentication completion another time at least with hostapd. Fix this by clearing the dpp_auth_ok_on_ack when processing it. Signed-off-by: Jouni Malinen --- src/ap/dpp_hostapd.c | 4 +++- wpa_supplicant/dpp_supplicant.c | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ap/dpp_hostapd.c b/src/ap/dpp_hostapd.c index 8654ee9be..e1d798e7d 100644 --- a/src/ap/dpp_hostapd.c +++ b/src/ap/dpp_hostapd.c @@ -300,8 +300,10 @@ void hostapd_dpp_tx_status(struct hostapd_data *hapd, const u8 *dst, return; } - if (hapd->dpp_auth_ok_on_ack) + if (hapd->dpp_auth_ok_on_ack) { + hapd->dpp_auth_ok_on_ack = 0; hostapd_dpp_auth_success(hapd, 1); + } } diff --git a/wpa_supplicant/dpp_supplicant.c b/wpa_supplicant/dpp_supplicant.c index 05fe0c84d..693d3853c 100644 --- a/wpa_supplicant/dpp_supplicant.c +++ b/wpa_supplicant/dpp_supplicant.c @@ -435,6 +435,9 @@ static void wpas_dpp_tx_status(struct wpa_supplicant *wpa_s, offchannel_send_action_done(wpa_s); wpas_dpp_listen_start(wpa_s, wpa_s->dpp_auth->neg_freq); } + + if (wpa_s->dpp_auth_ok_on_ack) + wpa_s->dpp_auth_ok_on_ack = 0; }