dnsmasq: backport latest pre2.81 patches
[openwrt/staging/rmilecki.git] / package / network / services / dnsmasq / patches / 0026-Check-for-not-DS-or-DNSKEY-in-is_outdated_cname_poin.patch
diff --git a/package/network/services/dnsmasq/patches/0026-Check-for-not-DS-or-DNSKEY-in-is_outdated_cname_poin.patch b/package/network/services/dnsmasq/patches/0026-Check-for-not-DS-or-DNSKEY-in-is_outdated_cname_poin.patch
new file mode 100644 (file)
index 0000000..b84a928
--- /dev/null
@@ -0,0 +1,24 @@
+From 2896e2485e44c04e73a0b7c9f7cbc9c8515d0800 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Wed, 9 Jan 2019 15:12:34 +0000
+Subject: [PATCH 26/30] Check for not(DS or DNSKEY) in
+ is_outdated_cname_pointer()
+
+Previous check was _for_ IPV4, IPv6 CNAME, and I missed adding SRV.
+
+Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
+---
+ src/cache.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/cache.c
++++ b/src/cache.c
+@@ -312,7 +312,7 @@ static int is_outdated_cname_pointer(str
+   /* NB. record may be reused as DS or DNSKEY, where uid is 
+      overloaded for something completely different */
+   if (crecp->addr.cname.target.cache && 
+-      (crecp->addr.cname.target.cache->flags & (F_IPV4 | F_IPV6 | F_CNAME)) &&
++      !(crecp->addr.cname.target.cache->flags & (F_DNSKEY | F_DS)) &&
+       crecp->addr.cname.uid == crecp->addr.cname.target.cache->uid)
+     return 0;
+