hostapd: fix goto loop for ubus assoc handler
authorDavid Bauer <mail@david-bauer.net>
Tue, 23 Nov 2021 21:25:02 +0000 (22:25 +0100)
committerDavid Bauer <mail@david-bauer.net>
Tue, 23 Nov 2021 21:27:13 +0000 (22:27 +0100)
When a ubus event handler denies a association with a non-zero return
value, the code jumps to preceeding code, creating an endless loop until
the event handler accepts the assc request.

Move the ubus handler further up the code to avoid creating such a loop.

Signed-off-by: David Bauer <mail@david-bauer.net>
package/network/services/hostapd/patches/600-ubus_support.patch

index e690e8fd7b54307bf9368fa2426927fb2289e6f5..89f5a5c3cf3057db8f6e76ff9fa3e119401e95ee 100644 (file)
  
        /* followed by SSID and Supported rates; and HT capabilities if 802.11n
         * is used */
-@@ -4543,6 +4560,14 @@ static void handle_assoc(struct hostapd_
-                                           pos, left, rssi, omit_rsnxe);
-       os_free(tmp);
+@@ -4477,6 +4494,14 @@ static void handle_assoc(struct hostapd_
+       }
+ #endif /* CONFIG_FILS */
  
 +      ubus_resp = hostapd_ubus_handle_event(hapd, &req);
 +      if (ubus_resp) {
 +              goto fail;
 +      }
 +
+  fail:
        /*
-        * Remove the station in case tranmission of a success response fails
-        * (the STA was added associated to the driver) or if the station was
 @@ -4570,6 +4595,7 @@ static void handle_disassoc(struct hosta
        wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d",
                   MAC2STR(mgmt->sa),