ports/dns/dnsmasq/files/patch-997982f78bd3f8c311b9557e1ef825555e7290bb
Matthias Andree 7a10b55465 dns/dnsmasq: cherry-pick several upstream fixes
all from dnsmasq's Git repository hosted by Simon Kelley:

+ Fix DHCPv6 "use multicast" response
+ Avoid undefined behaviour with the ctype(3) functions.
+ Document suppressing default options in --dhcp-option.
+ Fix --rev-server option.
+ Set the default maximum DNS UDP packet size to 1232.
+ Generalise cached NXDOMAIN replies.
+ Fix possible SEGV when no servers defined.

and bump PORTREVISION. This is so we can let it mature
for two weeks before 2023Q2 and because the upstream
release schedule is unforeseeable.

Obtained from: Simon Kelley <simon@thekelleys.org.uk>
Obtained from: Dominik Derigs <dl6er@dl6er.de>
Obtained from: Taylor R Campbell <campbell+dnsmasq@mumble.net>
2023-03-18 10:17:49 +01:00

41 lines
1.4 KiB
Text

From 997982f78bd3f8c311b9557e1ef825555e7290bb Mon Sep 17 00:00:00 2001
From: Dominik Derigs <dl6er@dl6er.de>
Date: Fri, 3 Mar 2023 18:05:26 +0100
Subject: [PATCH] Fix --rev-server option. It was broken in
1db9943c6879c160a5fbef885d5ceadd3668b74d when resolving upstream servers by
name was extended to --rev-server without accounting for the fact that
re-using one and the same upstream server for each of the x.y.z.in-addr.arpa
is actually a wanted feature
Signed-off-by: DL6ER <dl6er@dl6er.de>
---
src/option.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/option.c b/src/option.c
index 1090bca..2e208ba 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1159,6 +1159,9 @@ static char *domain_rev4(int from_file, char *server, struct in_addr *addr4, int
}
else
{
+ /* Always reset server as valid here, so we can add the same upstream
+ server address multiple times for each x.y.z.in-addr.arpa */
+ sdetails.valid = 1;
while (parse_server_next(&sdetails))
{
if ((string = parse_server_addr(&sdetails)))
@@ -1244,6 +1247,9 @@ static char *domain_rev6(int from_file, char *server, struct in6_addr *addr6, in
}
else
{
+ /* Always reset server as valid here, so we can add the same upstream
+ server address multiple times for each x.y.z.ip6.arpa */
+ sdetails.valid = 1;
while (parse_server_next(&sdetails))
{
if ((string = parse_server_addr(&sdetails)))
--
2.20.1