diff options
| author | Roy Marples <roy@marples.name> | 2016-11-08 21:09:31 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2016-11-08 21:09:31 +0000 |
| commit | dc415ba6b19ff1c19db9671fddce7607fd3e4e07 (patch) | |
| tree | 557eff4b0f83e12306d946e16b1868efe2382c46 | |
| parent | ebcafdf0b30b8195b041e3f6b801cad7909f90f5 (diff) | |
| download | dhcpcd-dc415ba6b19ff1c19db9671fddce7607fd3e4e07.tar.xz | |
If netmask is INADDR_ANY then CIDR must be 0.
| -rw-r--r-- | sa.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -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 */ |
