mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28: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
16
src/option.c
16
src/option.c
@@ -964,12 +964,8 @@ static char *domain_rev4(int from_file, char *server, struct in_addr *addr4, int
|
|||||||
if (size > 32 || size < 1)
|
if (size > 32 || size < 1)
|
||||||
return _("bad IPv4 prefix length");
|
return _("bad IPv4 prefix length");
|
||||||
|
|
||||||
for (i = 0; i < addrbytes; i++)
|
/* Zero out last address bits according to CIDR mask */
|
||||||
if (((u8 *)addr4)[3-i] != 0)
|
((u8 *)addr4)[3-addrbytes] &= ~((1 << addrbits)-1);
|
||||||
break;
|
|
||||||
|
|
||||||
if (i != addrbytes || (((u8 *)addr4)[3-addrbytes] & ((1 << addrbits) - 1)) != 0)
|
|
||||||
return _("address part not zero");
|
|
||||||
|
|
||||||
size = size & ~0x7;
|
size = size & ~0x7;
|
||||||
|
|
||||||
@@ -1027,12 +1023,8 @@ static char *domain_rev6(int from_file, char *server, struct in6_addr *addr6, in
|
|||||||
if (size > 128 || size < 1)
|
if (size > 128 || size < 1)
|
||||||
return _("bad IPv6 prefix length");
|
return _("bad IPv6 prefix length");
|
||||||
|
|
||||||
for (i = 0; i < addrbytes; i++)
|
/* Zero out last address bits according to CIDR mask */
|
||||||
if (addr6->s6_addr[15-i] != 0)
|
addr6->s6_addr[15-addrbytes] &= ~((1 << addrbits) - 1);
|
||||||
break;
|
|
||||||
|
|
||||||
if (i != addrbytes || (addr6->s6_addr[15-addrbytes] & ((1 << addrbits) - 1)) != 0)
|
|
||||||
return _("address part not zero");
|
|
||||||
|
|
||||||
size = size & ~0x3;
|
size = size & ~0x3;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user