WPS: Reduce wps_ap_priority_compar() stack use
[mech_eap.git] / src / wps / wps.c
index 498f11f..fbaf85a 100644 (file)
@@ -355,16 +355,16 @@ int wps_is_addr_authorized(const struct wpabuf *msg, const u8 *addr,
 int wps_ap_priority_compar(const struct wpabuf *wps_a,
                           const struct wpabuf *wps_b)
 {
-       struct wps_parse_attr attr_a, attr_b;
+       struct wps_parse_attr attr;
        int sel_a, sel_b;
 
-       if (wps_a == NULL || wps_parse_msg(wps_a, &attr_a) < 0)
+       if (wps_a == NULL || wps_parse_msg(wps_a, &attr) < 0)
                return 1;
-       if (wps_b == NULL || wps_parse_msg(wps_b, &attr_b) < 0)
-               return -1;
+       sel_a = attr.selected_registrar && *attr.selected_registrar != 0;
 
-       sel_a = attr_a.selected_registrar && *attr_a.selected_registrar != 0;
-       sel_b = attr_b.selected_registrar && *attr_b.selected_registrar != 0;
+       if (wps_b == NULL || wps_parse_msg(wps_b, &attr) < 0)
+               return -1;
+       sel_b = attr.selected_registrar && *attr.selected_registrar != 0;
 
        if (sel_a && !sel_b)
                return -1;