mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Check return-code of inet_pton when parsing DHCPv4 options.
This commit is contained in:
@@ -56,6 +56,11 @@ version 2.76
|
|||||||
Add --tftp-mtu option. Thanks to Patrick McLean for the
|
Add --tftp-mtu option. Thanks to Patrick McLean for the
|
||||||
initial patch.
|
initial patch.
|
||||||
|
|
||||||
|
Check return-code of inet_pton() when parsing dhcp-option.
|
||||||
|
Bad addresses could fail to generate errors and result in
|
||||||
|
garbage dhcp-options being sent. Thanks to Marc Branchaud
|
||||||
|
for spotting this.
|
||||||
|
|
||||||
|
|
||||||
version 2.75
|
version 2.75
|
||||||
Fix reversion on 2.74 which caused 100% CPU use when a
|
Fix reversion on 2.74 which caused 100% CPU use when a
|
||||||
|
|||||||
@@ -1199,7 +1199,8 @@ static int parse_dhcp_opt(char *errstr, char *arg, int flags)
|
|||||||
cp = comma;
|
cp = comma;
|
||||||
comma = split(cp);
|
comma = split(cp);
|
||||||
slash = split_chr(cp, '/');
|
slash = split_chr(cp, '/');
|
||||||
inet_pton(AF_INET, cp, &in);
|
if (!inet_pton(AF_INET, cp, &in))
|
||||||
|
ret_err(_("bad IPv4 address"));
|
||||||
if (!slash)
|
if (!slash)
|
||||||
{
|
{
|
||||||
memcpy(op, &in, INADDRSZ);
|
memcpy(op, &in, INADDRSZ);
|
||||||
@@ -3658,8 +3659,8 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
|
|||||||
(!(inet_pton(AF_INET, a[1], &new->out) > 0)))
|
(!(inet_pton(AF_INET, a[1], &new->out) > 0)))
|
||||||
option = '?';
|
option = '?';
|
||||||
|
|
||||||
if (k == 3)
|
if (k == 3 && !inet_pton(AF_INET, a[2], &new->mask))
|
||||||
inet_pton(AF_INET, a[2], &new->mask);
|
option = '?';
|
||||||
|
|
||||||
if (dash &&
|
if (dash &&
|
||||||
(!(inet_pton(AF_INET, dash, &new->end) > 0) ||
|
(!(inet_pton(AF_INET, dash, &new->end) > 0) ||
|
||||||
|
|||||||
Reference in New Issue
Block a user