[openwrt/openwrt] dnsmasq: mark global ubus context as closed after fork

LEDE Commits lede-commits at lists.infradead.org
Sun Nov 26 11:00:47 PST 2023


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/711dcb77630e96e75413b5cdbe3ddb5432f394f6

commit 711dcb77630e96e75413b5cdbe3ddb5432f394f6
Author: Sven Eckelmann <sven at narfation.org>
AuthorDate: Sat Nov 18 16:29:09 2023 +0100

    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 at narfation.org>
---
 package/network/services/dnsmasq/patches/200-ubus_dns.patch | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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,




More information about the lede-commits mailing list