Fix length->netmask conversions to avoid undefined behaviour.

This commit is contained in:
Richard Genoud
2014-09-17 21:17:39 +01:00
committed by Simon Kelley
parent 15b1b7e9c3
commit 10cfc0ddb3
2 changed files with 3 additions and 2 deletions

View File

@@ -208,7 +208,8 @@ int iface_enumerate(int family, void *parm, int (*callback)())
struct in_addr netmask, addr, broadcast;
char *label = NULL;
netmask.s_addr = htonl(0xffffffff << (32 - ifa->ifa_prefixlen));
netmask.s_addr = htonl(~(in_addr_t)0 << (32 - ifa->ifa_prefixlen));
addr.s_addr = 0;
broadcast.s_addr = 0;