From bd594ea0daaa8ddb142884b6cd4e5ca86a5da4c8 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 27 Dec 2012 08:06:55 +0200 Subject: [PATCH] P2P: Do not allow re-selection of GO channel if forced_freq in use Even if the peer does not accept the forced channel, we should not allow the forced_freq parameter to be be overridden, i.e., such a case needs to result in GO Negotiation failure. Signed-hostap: Jouni Malinen --- src/p2p/p2p_go_neg.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/p2p/p2p_go_neg.c b/src/p2p/p2p_go_neg.c index 670e4b3de..6efefe440 100644 --- a/src/p2p/p2p_go_neg.c +++ b/src/p2p/p2p_go_neg.c @@ -442,8 +442,15 @@ static int p2p_go_select_channel(struct p2p_data *p2p, struct p2p_device *dev, } if (!p2p_channels_includes(&intersection, p2p->op_reg_class, - p2p->op_channel)) + p2p->op_channel)) { + if (dev->flags & P2P_DEV_FORCE_FREQ) { + *status = P2P_SC_FAIL_NO_COMMON_CHANNELS; + wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: Peer does " + "not support the forced channel"); + return -1; + } p2p_reselect_channel(p2p, &intersection); + } if (!p2p->ssid_set) { p2p_build_ssid(p2p, p2p->ssid, &p2p->ssid_len); -- 2.39.2