chiark / gitweb /
fix in_addr_prefix_intersect for 32bits
[elogind.git] / src / shared / socket-util.c
index f8c6795e7c8155644496823b4884093b240d65eb..6f4979853eae0967852097d9f0a28f5fe9f4bb2d 100644 (file)
@@ -695,7 +695,7 @@ int in_addr_prefix_intersect(
                 uint32_t x, nm;
 
                 x = be32toh(a->in.s_addr ^ b->in.s_addr);
-                nm = 0xFFFFFFFFUL << (32 - m);
+                nm = (m == 0) ? 0 : 0xFFFFFFFFUL << (32 - m);
 
                 return (x & nm) == 0;
         }