aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/dnsmasq/patches/0025-Fix-crash-freeing-negative-SRV-cache-entries.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/dnsmasq/patches/0025-Fix-crash-freeing-negative-SRV-cache-entries.patch')
-rw-r--r--package/network/services/dnsmasq/patches/0025-Fix-crash-freeing-negative-SRV-cache-entries.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/package/network/services/dnsmasq/patches/0025-Fix-crash-freeing-negative-SRV-cache-entries.patch b/package/network/services/dnsmasq/patches/0025-Fix-crash-freeing-negative-SRV-cache-entries.patch
new file mode 100644
index 0000000000..ec4d52d7fd
--- /dev/null
+++ b/package/network/services/dnsmasq/patches/0025-Fix-crash-freeing-negative-SRV-cache-entries.patch
@@ -0,0 +1,23 @@
+From a90f09db4cc635941a32b973b57e58c662569625 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Wed, 9 Jan 2019 15:08:16 +0000
+Subject: [PATCH 25/30] Fix crash freeing negative SRV cache entries.
+
+Thanks to Daniel for finding this one.
+
+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
+@@ -200,7 +200,7 @@ static void cache_hash(struct crec *crec
+
+ static void cache_blockdata_free(struct crec *crecp)
+ {
+- if (crecp->flags & F_SRV)
++ if (crecp->flags & F_SRV && !(crecp->flags & F_NEG))
+ blockdata_free(crecp->addr.srv.target);
+ #ifdef HAVE_DNSSEC
+ else if (crecp->flags & F_DNSKEY)