hostapd: fix segfault when deinit mesh ifaces
authorJesus Fernandez Manzano <jesus.manzano@galgus.net>
Tue, 21 Sep 2021 10:49:30 +0000 (12:49 +0200)
committerDavid Bauer <mail@david-bauer.net>
Fri, 24 Sep 2021 10:33:33 +0000 (12:33 +0200)
In hostapd_ubus_add_bss(), ubus objects are not registered for mesh
interfaces. This provokes a segfault when accessing the ubus object in
mesh deinit.

This commit adds the same condition to hostapd_ubus_free_bss() for
discarding those mesh interfaces.

Signed-off-by: Jesus Fernandez Manzano <jesus.manzano@galgus.net>
(cherry picked from commit 5269c47e8db549695ceaf6a19afdd0cb90074622)

package/network/services/hostapd/src/src/ap/ubus.c

index d03b848f94bfc763af93f15dbaf6f33b114b72bb..0575fe2572cabe71d69894b7c13e07cab3931ef3 100644 (file)
@@ -1351,6 +1351,11 @@ void hostapd_ubus_free_bss(struct hostapd_data *hapd)
        struct ubus_object *obj = &hapd->ubus.obj;
        char *name = (char *) obj->name;
 
+#ifdef CONFIG_MESH
+       if (hapd->conf->mesh & MESH_ENABLED)
+               return;
+#endif
+
        if (!ctx)
                return;