]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Verify that eloop_register_read_sock() succeeds for ctrl_iface setup
authorJouni Malinen <j@w1.fi>
Thu, 8 Jan 2015 00:29:59 +0000 (02:29 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 8 Jan 2015 00:34:08 +0000 (02:34 +0200)
This allows faster detection of a case where a memory allocation fails
within eloop.

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

index 6c8121101c2382e91b284022c3eac2df2fafacef..a7235a4b359b98e872a8c5d371541495b84b7a2b 100644 (file)
@@ -2251,8 +2251,11 @@ int hostapd_ctrl_iface_init(struct hostapd_data *hapd)
        os_free(fname);
 
        hapd->ctrl_sock = s;
-       eloop_register_read_sock(s, hostapd_ctrl_iface_receive, hapd,
-                                NULL);
+       if (eloop_register_read_sock(s, hostapd_ctrl_iface_receive, hapd,
+                                    NULL) < 0) {
+               hostapd_ctrl_iface_deinit(hapd);
+               return -1;
+       }
        hapd->msg_ctx = hapd;
        wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb);
 
@@ -2299,6 +2302,7 @@ void hostapd_ctrl_iface_deinit(struct hostapd_data *hapd)
        }
 
        dst = hapd->ctrl_dst;
+       hapd->ctrl_dst = NULL;
        while (dst) {
                prev = dst;
                dst = dst->next;