[PATCH 12/19] P2PS: add feature capability value presence verification

Ilan Peer ilan.peer at intel.com
Wed Jun 10 04:43:42 EDT 2015


From: Max Stepanov <Max.Stepanov at intel.com>

Add feature capability presence verification on P2PS provision discovery
request processing. Return 'incompatible parameter' error in a provision
discovery response if this mandatory attribute is missing.

Signed-off-by: Max Stepanov <Max.Stepanov at intel.com>
Reviewed-by: Ilan Peer <ilan.peer at intel.com>
---
 src/p2p/p2p_pd.c | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/p2p/p2p_pd.c b/src/p2p/p2p_pd.c
index 89c9a3a..f9e2911 100644
--- a/src/p2p/p2p_pd.c
+++ b/src/p2p/p2p_pd.c
@@ -548,6 +548,10 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
 			} else if (!conncap) {
 				p2p_dbg(p2p, "Conncap resolution failed");
 				reject = P2P_SC_FAIL_INCOMPATIBLE_PARAMS;
+			} else if (!msg.feature_cap) {
+				p2p_dbg(p2p,
+					"Missing feature capability in Provision Discovery Request");
+				reject = P2P_SC_FAIL_INCOMPATIBLE_PARAMS;
 			}
 
 			if (msg.wps_config_methods & WPS_CONFIG_KEYPAD) {
@@ -637,12 +641,25 @@ void p2p_process_prov_disc_req(struct p2p_data *p2p, const u8 *sa,
 
 				/* Reject this "Deferred Accept* if incompatible
 				 * conncap or method */
-				if (!conncap ||
-				    !(msg.wps_config_methods & method))
+				if (!conncap) {
+					p2p_dbg(p2p,
+						"Incompatible conncap in Follow-On Provision Discovery Request");
+					reject =
+						P2P_SC_FAIL_INCOMPATIBLE_PARAMS;
+
+				} else if (!(msg.wps_config_methods & method)) {
+					p2p_dbg(p2p,
+						"Incompatible config method in Follow-On Provision Discovery Request");
 					reject =
 						P2P_SC_FAIL_INCOMPATIBLE_PARAMS;
-				else
+				} else if (!msg.feature_cap) {
+					p2p_dbg(p2p,
+						"Missing feature capability in Follow-On Provision Discovery Request");
+					reject =
+						P2P_SC_FAIL_INCOMPATIBLE_PARAMS;
+				} else {
 					reject = P2P_SC_SUCCESS;
+				}
 
 				p2p->p2ps_prov->status = reject;
 				p2p->p2ps_prov->conncap = conncap;
-- 
1.9.1



More information about the HostAP mailing list