]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
bsd: Fix buffer size for routing socket with IPv6 disabled
authorYi Zhu <Yi.Zhu@Atheros.com>
Tue, 12 Apr 2011 20:09:14 +0000 (23:09 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 12 Apr 2011 20:09:14 +0000 (23:09 +0300)
AF_INET6 is not always enabled by default, so use AF_INET instead. In
addition, use the old fixed length, 2048, as a failover value if the
sysctl fails for any reason.

src/drivers/driver_bsd.c

index 5348d0974645be0ea91e6eb2274af6dd4d77e9a1..dc3e264995ad3034c2ddb3b608affdd9a490b723 100644 (file)
@@ -575,12 +575,12 @@ rtbuf_len(void)
 {
        size_t len;
 
-       int mib[6] = {CTL_NET, AF_ROUTE, 0, AF_INET6, NET_RT_DUMP, 0};
+       int mib[6] = {CTL_NET, AF_ROUTE, 0, AF_INET, NET_RT_DUMP, 0};
 
        if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) {
-               wpa_printf(MSG_ERROR, "%s failed: %s\n", __func__,
+               wpa_printf(MSG_WARNING, "%s failed: %s\n", __func__,
                           strerror(errno));
-               return -1;
+               len = 2048;
        }
 
        return len;
@@ -717,8 +717,6 @@ bsd_wireless_event_receive(int sock, void *ctx, void *sock_ctx)
        union wpa_event_data data;
 
        len = rtbuf_len();
-       if (len < 0)
-               return;
 
        buf = os_malloc(len);
        if (buf == NULL) {
@@ -1156,8 +1154,6 @@ wpa_driver_bsd_event_receive(int sock, void *ctx, void *sock_ctx)
        int n, len;
 
        len = rtbuf_len();
-       if (len < 0)
-               return;
 
        buf = os_malloc(len);
        if (buf == NULL) {