The branch, v4-23-test has been updated
       via  36f0300cda5 s3:winbindd fix race condition in terminate_child
       via  5085b8c1d66 s4/dlz: add support for bind 9.20
      from  8b9278941c8 vfs_ceph_new: use vfs_ceph_iget/vfs_ceph_iput in 
vfs_ceph_disk_free

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-23-test


- Log -----------------------------------------------------------------
commit 36f0300cda5989c948801fba0f8b0b64066f54a9
Author: Gary Lockyer <[email protected]>
Date:   Wed Jan 7 10:23:33 2026 +1300

    s3:winbindd fix race condition in terminate_child
    
    Fixes:
    
    winbindd[306061]:   Bad talloc magic value - unknown value
    winbindd[306061]:   
=========================================================
    winbindd[306061]:   INTERNAL ERROR: Bad talloc magic value - unknown value 
in
                        winbindd () () pid
    
    A race condition in source3/windbindd/winbindd_util.c::terminate_child
    between the child socket closing, and the destructor de-registering the
    child socket from epoll.
    
    If the socket closes before it is de-registered from epoll, the event
    is added to the epoll rdllink and will be retrieved when epoll_wait
    is next called.  However monitor_fde has been deallocated and we get the
    observed failure.
    
    Moving the TALLOC_FREE before the kill ensures that the child socket has 
been
    de-registered from epoll before it closes.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15937
    
    Signed-off-by: Gary Lockyer <[email protected]>
    Reviewed-by: Stefan Metzmacher <[email protected]>
    
    Autobuild-User(master): Stefan Metzmacher <[email protected]>
    Autobuild-Date(master): Tue Jan 13 14:50:20 UTC 2026 on atb-devel-224
    
    (cherry picked from commit a3684a2284cdf421090d6064b720b81b05b6eae6)
    
    Autobuild-User(v4-23-test): Björn Jacke <[email protected]>
    Autobuild-Date(v4-23-test): Thu Jan 15 13:38:20 UTC 2026 on atb-devel-224

commit 5085b8c1d660a87e8b73fdc8c956a2d6acff3d9d
Author: Michael Tokarev <[email protected]>
Date:   Tue Jun 3 09:41:57 2025 +0300

    s4/dlz: add support for bind 9.20
    
    bind dlz interface does not change much, yet we build
    dlz_bind9_NN for every bind9 version NN we support -
    despite many of them differ only in soversion, with
    the code being identical.
    
    For bind9_20, use dlz_bind9_18.so which we already have.
    
    It'd be nice to extract actual bind9 version string in
    sambadns.py and use it in more direct way.
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=15790
    
    Signed-off-by: Michael Tokarev <[email protected]>
    Reviewed-by: Douglas Bagnall <[email protected]>
    Reviewed-by: Samuel Cabrero <[email protected]>
    
    Autobuild-User(master): Douglas Bagnall <[email protected]>
    Autobuild-Date(master): Wed Dec 10 22:46:11 UTC 2025 on atb-devel-224
    
    (cherry picked from commit 6488787d65ef02cc97b4b79587da6155ff369ac0)

-----------------------------------------------------------------------

Summary of changes:
 python/samba/provision/sambadns.py | 3 ++-
 source3/winbindd/winbindd_util.c   | 2 +-
 source4/setup/named.conf.dlz       | 4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/python/samba/provision/sambadns.py 
b/python/samba/provision/sambadns.py
index 952e875c862..a3515bbe37b 100644
--- a/python/samba/provision/sambadns.py
+++ b/python/samba/provision/sambadns.py
@@ -1030,7 +1030,8 @@ def create_named_conf(paths, realm, dnsdomain, 
dns_backend, logger):
             bind9_14 = ''
         elif bind_info.upper().find('BIND 9.16') != -1:
             bind9_16 = ''
-        elif bind_info.upper().find('BIND 9.18') != -1:
+        elif bind_info.upper().find('BIND 9.18') != -1 \
+          or bind_info.upper().find('BIND 9.20') != -1:
             bind9_18 = ''
         elif bind_info.upper().find('BIND 9.7') != -1:
             raise ProvisioningError("DLZ option incompatible with BIND 9.7.")
diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c
index 3c991425dd9..566794b86a0 100644
--- a/source3/winbindd/winbindd_util.c
+++ b/source3/winbindd/winbindd_util.c
@@ -971,13 +971,13 @@ static void terminate_child(struct tevent_req *subreq)
        TALLOC_FREE(subreq);
 
        if (c->pid != 0) {
+               TALLOC_FREE(c->monitor_fde);
                kill(c->pid, SIGTERM);
                c->pid = 0;
                if (c->sock != -1) {
                        close(c->sock);
                }
                c->sock = -1;
-               TALLOC_FREE(c->monitor_fde);
        }
 
        c = NULL;
diff --git a/source4/setup/named.conf.dlz b/source4/setup/named.conf.dlz
index cbe7d805f58..9753cdc503b 100644
--- a/source4/setup/named.conf.dlz
+++ b/source4/setup/named.conf.dlz
@@ -30,8 +30,8 @@ dlz "AD DNS Zone" {
 
     # For BIND 9.16.x
     ${BIND9_16} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_16.so";
-    #
-    # For BIND 9.18.x
+
+    # For BIND 9.18.x and 9.20.x
     ${BIND9_18} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_18.so";
 };
 


-- 
Samba Shared Repository

Reply via email to