Parcourir la source

WPS: Add MAC address to validation error message for Probe Request

This makes it easier to figure out which device is sending invalid
Probe Request frames.
Jouni Malinen il y a 14 ans
Parent
commit
baf7081ccd
3 fichiers modifiés avec 6 ajouts et 5 suppressions
  1. 1 1
      src/ap/wps_hostapd.c
  2. 3 2
      src/wps/wps.h
  3. 2 2
      src/wps/wps_validate.c

+ 1 - 1
src/ap/wps_hostapd.c

@@ -881,7 +881,7 @@ static int hostapd_wps_probe_req_rx(void *ctx, const u8 *addr,
 	wps_ie = ieee802_11_vendor_ie_concat(ie, ie_len, WPS_DEV_OUI_WFA);
 	if (wps_ie == NULL)
 		return 0;
-	if (wps_validate_probe_req(wps_ie) < 0) {
+	if (wps_validate_probe_req(wps_ie, addr) < 0) {
 		wpabuf_free(wps_ie);
 		return 0;
 	}

+ 3 - 2
src/wps/wps.h

@@ -770,7 +770,7 @@ u16 wps_config_methods_str2bin(const char *str);
 int wps_validate_beacon(const struct wpabuf *wps_ie);
 int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie, int probe,
 				   const u8 *addr);
-int wps_validate_probe_req(const struct wpabuf *wps_ie);
+int wps_validate_probe_req(const struct wpabuf *wps_ie, const u8 *addr);
 int wps_validate_assoc_req(const struct wpabuf *wps_ie);
 int wps_validate_assoc_resp(const struct wpabuf *wps_ie);
 int wps_validate_m1(const struct wpabuf *tlvs);
@@ -802,7 +802,8 @@ static inline int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie,
 	return 0;
 }
 
-static inline int wps_validate_probe_req(const struct wpabuf *wps_ie)
+static inline int wps_validate_probe_req(const struct wpabuf *wps_ie,
+					 const u8 *addr)
 {
 	return 0;
 }

+ 2 - 2
src/wps/wps_validate.c

@@ -1181,7 +1181,7 @@ int wps_validate_beacon_probe_resp(const struct wpabuf *wps_ie, int probe,
 }
 
 
-int wps_validate_probe_req(const struct wpabuf *wps_ie)
+int wps_validate_probe_req(const struct wpabuf *wps_ie, const u8 *addr)
 {
 	struct wps_parse_attr attr;
 	int wps2;
@@ -1220,7 +1220,7 @@ int wps_validate_probe_req(const struct wpabuf *wps_ie)
 	    wps_validate_req_dev_type(attr.req_dev_type, attr.num_req_dev_type,
 				      0)) {
 		wpa_printf(MSG_INFO, "WPS-STRICT: Invalid Probe Request "
-			   "frame");
+			   "frame from " MACSTR, MAC2STR(addr));
 		return -1;
 	}