Fix CONFIG_CTRL_IFACE=udp6/udp6-remote builds
wpa_supplicant_global_ctrl_iface_receive() did not handle the from
address properly for the IPv6 case. This was broken by commit
d60886cdaf
('wpa_supplicant: Add monitor
support for global UDP ctrl_iface').
Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
4f6985de09
commit
a6fbff2049
1 changed files with 7 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* WPA Supplicant / UDP socket -based control interface
|
||||
* Copyright (c) 2004-2005, Jouni Malinen <j@w1.fi>
|
||||
* Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi>
|
||||
*
|
||||
* This software may be distributed under the terms of the BSD license.
|
||||
* See README for more details.
|
||||
|
@ -602,7 +602,11 @@ static void wpa_supplicant_global_ctrl_iface_receive(int sock, void *eloop_ctx,
|
|||
struct ctrl_iface_global_priv *priv = sock_ctx;
|
||||
char buf[256], *pos;
|
||||
int res;
|
||||
#ifdef CONFIG_CTRL_IFACE_UDP_IPV6
|
||||
struct sockaddr_in6 from;
|
||||
#else /* CONFIG_CTRL_IFACE_UDP_IPV6 */
|
||||
struct sockaddr_in from;
|
||||
#endif /* CONFIG_CTRL_IFACE_UDP_IPV6 */
|
||||
socklen_t fromlen = sizeof(from);
|
||||
char *reply = NULL;
|
||||
size_t reply_len;
|
||||
|
@ -617,6 +621,7 @@ static void wpa_supplicant_global_ctrl_iface_receive(int sock, void *eloop_ctx,
|
|||
}
|
||||
|
||||
#ifndef CONFIG_CTRL_IFACE_UDP_REMOTE
|
||||
#ifndef CONFIG_CTRL_IFACE_UDP_IPV6
|
||||
if (from.sin_addr.s_addr != htonl((127 << 24) | 1)) {
|
||||
/*
|
||||
* The OS networking stack is expected to drop this kind of
|
||||
|
@ -628,6 +633,7 @@ static void wpa_supplicant_global_ctrl_iface_receive(int sock, void *eloop_ctx,
|
|||
"source %s", inet_ntoa(from.sin_addr));
|
||||
return;
|
||||
}
|
||||
#endif /* CONFIG_CTRL_IFACE_UDP_IPV6 */
|
||||
#endif /* CONFIG_CTRL_IFACE_UDP_REMOTE */
|
||||
|
||||
buf[res] = '\0';
|
||||
|
|
Loading…
Reference in a new issue