]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
l2_packet: Fix l2_packet_none (hostapd default)
authorJouni Malinen <j@w1.fi>
Mon, 14 Apr 2014 20:04:55 +0000 (23:04 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 14 Apr 2014 20:04:55 +0000 (23:04 +0300)
The sample code here ended up trying to register an eloop socket with fd
== -1. This was not really ever supposed to be used, but it is now also
hitting an assert in eloop. Skip the unnecessary
eloop_register_read_sock() to avoid this.

This was causing issues for hostapd since CONFIG_L2_PACKET is not set by
default. If CONFIG_RSN_PREAUTH=y was not used for CONFIG_L2_PACKET was
not set in .config explicitly, the defaul use of l2_packet_none.c ended
up hitting the newly added assert() in eloop.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/l2_packet/l2_packet_none.c

index b01e830220f889804f9d45e70ae49ea15d0a8412..6896c4e4e5cad53d08946195616426f3f2b6f6ec 100644 (file)
@@ -84,7 +84,8 @@ struct l2_packet_data * l2_packet_init(
         * TODO: open connection for receiving frames
         */
        l2->fd = -1;
-       eloop_register_read_sock(l2->fd, l2_packet_receive, l2, NULL);
+       if (l2->fd >= 0)
+               eloop_register_read_sock(l2->fd, l2_packet_receive, l2, NULL);
 
        return l2;
 }