summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2023-11-18 16:29:09 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2024-03-18 21:55:47 +0100
commitaf22a169c1e480b991eb8c4e69674bf5846d6215 (patch)
tree9ce1ff595f69dfc1643fbd5f75195d688bb8db5c
parent0a571c9e77b381ff4ea4beb42113b5cd43144f12 (diff)
downloadopenwrt-af22a169c1e480b991eb8c4e69674bf5846d6215.tar.gz
openwrt-af22a169c1e480b991eb8c4e69674bf5846d6215.tar.bz2
openwrt-af22a169c1e480b991eb8c4e69674bf5846d6215.zip
dnsmasq: mark global ubus context as closed after fork
If the dnsmasq process forks to handle TCP connections, it closes the ubus context. But instead of changing the daemon wide pointer to NULL, only the local variable was adjusted - and this portion of the code was even dropped (dead store) by some optimizing compilers. It makes more sense to change the daemon->ubus pointer because various functions are already checking it for NULL. It is also the behavior which ubus_destroy() implements. Fixes: d8b33dad0bb7 ("dnsmasq: add support for monitoring and modifying dns lookup results via ubus") Signed-off-by: Sven Eckelmann <sven@narfation.org> (cherry picked from commit 711dcb77630e96e75413b5cdbe3ddb5432f394f6)
-rw-r--r--package/network/services/dnsmasq/patches/200-ubus_dns.patch2
1 files changed, 1 insertions, 1 deletions
diff --git a/package/network/services/dnsmasq/patches/200-ubus_dns.patch b/package/network/services/dnsmasq/patches/200-ubus_dns.patch
index 8a70bb8bdf..ccbe70ab9c 100644
--- a/package/network/services/dnsmasq/patches/200-ubus_dns.patch
+++ b/package/network/services/dnsmasq/patches/200-ubus_dns.patch
@@ -210,7 +210,7 @@
+ return;
+
+ ubus_free(ubus);
-+ ubus = NULL;
++ daemon->ubus = NULL;
+}
+
static int ubus_handle_metrics(struct ubus_context *ctx, struct ubus_object *obj,