X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=acl.c;fp=acl.c;h=75fdc55b12842890136afec74e70125f81b6318c;hb=f17981539ec6877f404b1dfb2e59b55467886e67;hp=10f56bf1bd90fd62e1bb129140365fbed3c2e136;hpb=71c22c2bb151244b2d3db7aa5a1e4a7fec7d2d83;p=paraslash.git diff --git a/acl.c b/acl.c index 10f56bf1..75fdc55b 100644 --- a/acl.c +++ b/acl.c @@ -31,10 +31,12 @@ struct access_info { /** * Return true if addr_1 matches addr_2 in the first `netmask' bits. */ -static int v4_addr_match(uint32_t addr_1, uint32_t addr_2, uint8_t netmask) +static bool v4_addr_match(uint32_t addr_1, uint32_t addr_2, uint8_t netmask) { uint32_t mask = ~0U; + if (netmask == 0) /* avoid 32-bit shift, which is undefined in C. */ + return true; if (netmask < 32) mask <<= (32 - netmask); return (htonl(addr_1) & mask) == (htonl(addr_2) & mask);