mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 10:18:25 +00:00
Do not fail hard when rev-server has a non-zero final address part
Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
committed by
Simon Kelley
parent
267ab619c4
commit
ed4e7defd7
18
src/option.c
18
src/option.c
@@ -963,13 +963,9 @@ static char *domain_rev4(int from_file, char *server, struct in_addr *addr4, int
|
||||
|
||||
if (size > 32 || size < 1)
|
||||
return _("bad IPv4 prefix length");
|
||||
|
||||
for (i = 0; i < addrbytes; i++)
|
||||
if (((u8 *)addr4)[3-i] != 0)
|
||||
break;
|
||||
|
||||
if (i != addrbytes || (((u8 *)addr4)[3-addrbytes] & ((1 << addrbits) - 1)) != 0)
|
||||
return _("address part not zero");
|
||||
|
||||
/* Zero out last address bits according to CIDR mask */
|
||||
((u8 *)addr4)[3-addrbytes] &= ~((1 << addrbits)-1);
|
||||
|
||||
size = size & ~0x7;
|
||||
|
||||
@@ -1026,13 +1022,9 @@ static char *domain_rev6(int from_file, char *server, struct in6_addr *addr6, in
|
||||
|
||||
if (size > 128 || size < 1)
|
||||
return _("bad IPv6 prefix length");
|
||||
|
||||
for (i = 0; i < addrbytes; i++)
|
||||
if (addr6->s6_addr[15-i] != 0)
|
||||
break;
|
||||
|
||||
if (i != addrbytes || (addr6->s6_addr[15-addrbytes] & ((1 << addrbits) - 1)) != 0)
|
||||
return _("address part not zero");
|
||||
/* Zero out last address bits according to CIDR mask */
|
||||
addr6->s6_addr[15-addrbytes] &= ~((1 << addrbits) - 1);
|
||||
|
||||
size = size & ~0x3;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user