From dc415ba6b19ff1c19db9671fddce7607fd3e4e07 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Tue, 8 Nov 2016 21:09:31 +0000 Subject: [PATCH] If netmask is INADDR_ANY then CIDR must be 0. --- sa.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sa.c b/sa.c index 66eda8dd..609f9ee1 100644 --- a/sa.c +++ b/sa.c @@ -195,6 +195,8 @@ sa_toprefix(const struct sockaddr *sa) int cidr; sin = satocsin(sa); + if (sin->sin_addr.s_addr == INADDR_ANY) + return 0; mask = (int)ntohl(sin->sin_addr.s_addr); cidr = 33 - ffs(mask); /* 33 - (1 .. 32) -> 32 .. 1 */ if (cidr < 32) { /* more than 1 bit in mask */ -- 2.47.3