From: Roy Marples Date: Tue, 8 Nov 2016 21:09:31 +0000 (+0000) Subject: If netmask is INADDR_ANY then CIDR must be 0. X-Git-Tag: v7.0.0-beta1~122 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dc415ba6b19ff1c19db9671fddce7607fd3e4e07;p=thirdparty%2Fdhcpcd.git If netmask is INADDR_ANY then CIDR must be 0. --- 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 */