FST: Avoid memory leak on double FST-ATTACH
authorJouni Malinen <j@w1.fi>
Sun, 26 Jul 2015 09:08:17 +0000 (12:08 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 26 Jul 2015 15:12:09 +0000 (18:12 +0300)
Do not allow wpa_s->fst to be replaced when processing FST-ATTACH
command for an interface that has already been attached.

Signed-off-by: Jouni Malinen <j@w1.fi>
wpa_supplicant/ctrl_iface.c

index 07b7038..aad69ec 100644 (file)
@@ -9194,6 +9194,10 @@ static int wpas_global_ctrl_iface_fst_attach(struct wpa_global *global,
        if (!fst_parse_attach_command(cmd, ifname, sizeof(ifname), &cfg)) {
                wpa_s = wpa_supplicant_get_iface(global, ifname);
                if (wpa_s) {
+                       if (wpa_s->fst) {
+                               wpa_printf(MSG_INFO, "FST: Already attached");
+                               return -1;
+                       }
                        fst_wpa_supplicant_fill_iface_obj(wpa_s, &iface_obj);
                        wpa_s->fst = fst_attach(ifname, wpa_s->own_addr,
                                                &iface_obj, &cfg);