diff options
Diffstat (limited to 'net/base/network_change_notifier_netlink_linux.cc')
-rw-r--r-- | net/base/network_change_notifier_netlink_linux.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/base/network_change_notifier_netlink_linux.cc b/net/base/network_change_notifier_netlink_linux.cc index 493e17ae..439943e4 100644 --- a/net/base/network_change_notifier_netlink_linux.cc +++ b/net/base/network_change_notifier_netlink_linux.cc @@ -71,13 +71,16 @@ int InitializeNetlinkSocket() { return -1; } - struct sockaddr_nl local_addr; + union { + struct sockaddr_nl local_addr; + struct sockaddr local_addr_generic; + }; memset(&local_addr, 0, sizeof(local_addr)); local_addr.nl_family = AF_NETLINK; local_addr.nl_pid = getpid(); local_addr.nl_groups = RTMGRP_IPV4_IFADDR | RTMGRP_IPV6_IFADDR | RTMGRP_NOTIFY; - int ret = bind(sock, reinterpret_cast<struct sockaddr*>(&local_addr), + int ret = bind(sock, &local_addr_generic, sizeof(local_addr)); if (ret < 0) { PLOG(ERROR) << "Error binding netlink socket"; |