]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Add forgotten list entry removal for control interface deinit
authorJouni Malinen <j@w1.fi>
Sun, 4 Oct 2015 08:58:24 +0000 (11:58 +0300)
committerJouni Malinen <j@w1.fi>
Sun, 4 Oct 2015 15:52:38 +0000 (18:52 +0300)
dl_list_del() must be called before freeing the list entries. Neither of
these cases caused problems because the full list data structure was
freed, but still, it is better to do this properly.

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

index 33457f255c6602805bdfc05a1d367a941ad2936f..2c71b2d69e8d7d06a9c5110f97fb75588eae6fd1 100644 (file)
@@ -916,8 +916,10 @@ void wpa_supplicant_ctrl_iface_deinit(struct ctrl_iface_priv *priv)
 
 free_dst:
        dl_list_for_each_safe(dst, prev, &priv->ctrl_dst, struct wpa_ctrl_dst,
-                             list)
+                             list) {
+               dl_list_del(&dst->list);
                os_free(dst);
+       }
        dl_list_for_each_safe(msg, prev_msg, &priv->msg_queue,
                              struct ctrl_iface_msg, list) {
                dl_list_del(&msg->list);
@@ -1422,8 +1424,10 @@ wpa_supplicant_global_ctrl_iface_deinit(struct ctrl_iface_global_priv *priv)
        if (priv->global->params.ctrl_interface)
                unlink(priv->global->params.ctrl_interface);
        dl_list_for_each_safe(dst, prev, &priv->ctrl_dst, struct wpa_ctrl_dst,
-                             list)
+                             list) {
+               dl_list_del(&dst->list);
                os_free(dst);
+       }
        dl_list_for_each_safe(msg, prev_msg, &priv->msg_queue,
                              struct ctrl_iface_msg, list) {
                dl_list_del(&msg->list);