summaryrefslogtreecommitdiff
path: root/src/network/networkd-address.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/networkd-address.c')
-rw-r--r--src/network/networkd-address.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c
index ce0e923cbe..47033acde4 100644
--- a/src/network/networkd-address.c
+++ b/src/network/networkd-address.c
@@ -592,6 +592,10 @@ bool address_equal(Address *a1, Address *a2) {
case AF_INET:
if (a1->prefixlen != a2->prefixlen)
return false;
+ else if (a1->prefixlen == 0)
+ /* make sure we don't try to shift by 32.
+ * See ISO/IEC 9899:TC3 ยง 6.5.7.3. */
+ return true;
else {
uint32_t b1, b2;