The branch, master has been updated
       via  20a3a94e06a lib:ldb: Document environment variables in ldb manpage
       via  d6ff05cb570 lib:ldb: Remove trailing spaces from ldb.3.xml
       via  dc6927fdca2 lib:ldb: Don't use RTLD_DEEPBIND by default
       via  8d6b5183770 lib:ldb: Remove trailing spaces from ldb_modules.c
       via  bad3fb0c2e3 s3:tests: Write stderr to file to be able to print it 
on failure
       via  59e4ea91f2c s3:tests: Track the status of smbcquotas and not tr
      from  91f0d7e1c91 s3:client: Improve error message on cli_setatr() failure

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 20a3a94e06a2294206ec233ccc7f873d6ef2aca0
Author: Andreas Schneider <a...@samba.org>
Date:   Wed Sep 25 09:22:08 2024 +0200

    lib:ldb: Document environment variables in ldb manpage
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15643
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>
    
    Autobuild-User(master): Andreas Schneider <a...@cryptomilk.org>
    Autobuild-Date(master): Fri Sep 27 09:06:43 UTC 2024 on atb-devel-224

commit d6ff05cb5708fb6746176821bee5f713195efa54
Author: Andreas Schneider <a...@samba.org>
Date:   Wed Sep 25 09:40:23 2024 +0200

    lib:ldb: Remove trailing spaces from ldb.3.xml
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15643
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit dc6927fdca2ad77dbcf212ef4d3ba0d118ec7bdf
Author: Andreas Schneider <a...@samba.org>
Date:   Wed Sep 25 09:19:44 2024 +0200

    lib:ldb: Don't use RTLD_DEEPBIND by default
    
    It should be off by default, as this is not needed by default. It
    crashes named on startup, if bind is built with jemalloc support.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15643
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 8d6b5183770895fef002b6cce84902d1874fa502
Author: Andreas Schneider <a...@samba.org>
Date:   Wed Sep 25 09:19:17 2024 +0200

    lib:ldb: Remove trailing spaces from ldb_modules.c
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15643
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit bad3fb0c2e307c4d54264c6fee49079854a90bf5
Author: Andreas Schneider <a...@samba.org>
Date:   Wed Sep 25 07:59:04 2024 +0200

    s3:tests: Write stderr to file to be able to print it on failure
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Signed-off-by: Martin Schwenke <mschwe...@ddn.com>

commit 59e4ea91f2c5b5360d20880bae4e87f122d388ee
Author: Andreas Schneider <a...@samba.org>
Date:   Wed Sep 25 07:50:15 2024 +0200

    s3:tests: Track the status of smbcquotas and not tr
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Signed-off-by: Martin Schwenke <mschwe...@ddn.com>

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

Summary of changes:
 lib/ldb/common/ldb_modules.c             | 55 +++++++++++++-------------------
 lib/ldb/man/ldb.3.xml                    | 23 ++++++++++++-
 selftest/selftest.pl                     |  6 ----
 selftest/wscript                         |  5 ++-
 source3/script/tests/test_dfree_quota.sh | 11 +++++--
 5 files changed, 56 insertions(+), 44 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/ldb/common/ldb_modules.c b/lib/ldb/common/ldb_modules.c
index b5627b0d04f..08d251f9bdd 100644
--- a/lib/ldb/common/ldb_modules.c
+++ b/lib/ldb/common/ldb_modules.c
@@ -631,9 +631,9 @@ int ldb_next_start_trans(struct ldb_module *module)
                /* Set a default error string, to place the blame somewhere */
                ldb_asprintf_errstring(module->ldb, "start_trans error in 
module %s: %s (%d)", module->ops->name, ldb_strerror(ret), ret);
        }
-       if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) { 
-               ldb_debug(module->ldb, LDB_DEBUG_TRACE, "ldb_next_start_trans 
error: %s", 
-                         ldb_errstring(module->ldb));                          
+       if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
+               ldb_debug(module->ldb, LDB_DEBUG_TRACE, "ldb_next_start_trans 
error: %s",
+                         ldb_errstring(module->ldb));
        }
        return ret;
 }
@@ -650,9 +650,9 @@ int ldb_next_end_trans(struct ldb_module *module)
                /* Set a default error string, to place the blame somewhere */
                ldb_asprintf_errstring(module->ldb, "end_trans error in module 
%s: %s (%d)", module->ops->name, ldb_strerror(ret), ret);
        }
-       if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) { 
-               ldb_debug(module->ldb, LDB_DEBUG_TRACE, "ldb_next_end_trans 
error: %s", 
-                         ldb_errstring(module->ldb));                          
+       if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
+               ldb_debug(module->ldb, LDB_DEBUG_TRACE, "ldb_next_end_trans 
error: %s",
+                         ldb_errstring(module->ldb));
        }
        return ret;
 }
@@ -720,9 +720,9 @@ int ldb_next_prepare_commit(struct ldb_module *module)
                /* Set a default error string, to place the blame somewhere */
                ldb_asprintf_errstring(module->ldb, "prepare_commit error in 
module %s: %s (%d)", module->ops->name, ldb_strerror(ret), ret);
        }
-       if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) { 
-               ldb_debug(module->ldb, LDB_DEBUG_TRACE, 
"ldb_next_prepare_commit error: %s", 
-                         ldb_errstring(module->ldb));                          
+       if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
+               ldb_debug(module->ldb, LDB_DEBUG_TRACE, 
"ldb_next_prepare_commit error: %s",
+                         ldb_errstring(module->ldb));
        }
        return ret;
 }
@@ -739,9 +739,9 @@ int ldb_next_del_trans(struct ldb_module *module)
                /* Set a default error string, to place the blame somewhere */
                ldb_asprintf_errstring(module->ldb, "del_trans error in module 
%s: %s (%d)", module->ops->name, ldb_strerror(ret), ret);
        }
-       if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) { 
-               ldb_debug(module->ldb, LDB_DEBUG_TRACE, "ldb_next_del_trans 
error: %s", 
-                         ldb_errstring(module->ldb));                          
+       if ((module && module->ldb->flags & LDB_FLG_ENABLE_TRACING)) {
+               ldb_debug(module->ldb, LDB_DEBUG_TRACE, "ldb_next_del_trans 
error: %s",
+                         ldb_errstring(module->ldb));
        }
        return ret;
 }
@@ -777,17 +777,17 @@ int ldb_module_send_entry(struct ldb_request *req,
            req->handle->nesting == 0) {
                char *s;
                struct ldb_ldif ldif;
-               
+
                ldif.changetype = LDB_CHANGETYPE_NONE;
                ldif.msg = discard_const_p(struct ldb_message, msg);
 
                ldb_debug_add(req->handle->ldb, "ldb_trace_response: ENTRY\n");
 
-               /* 
+               /*
                 * The choice to call
                 * ldb_ldif_write_redacted_trace_string() is CRITICAL
                 * for security.  It ensures that we do not output
-                * passwords into debug logs 
+                * passwords into debug logs
                 */
 
                s = ldb_ldif_write_redacted_trace_string(req->handle->ldb, msg, 
&ldif);
@@ -945,7 +945,7 @@ static int ldb_modules_load_path(const char *path, const 
char *version)
        int dlopen_flags;
 
 #ifdef RTLD_DEEPBIND
-       bool deepbind_enabled = (getenv("LDB_MODULES_DISABLE_DEEPBIND") == 
NULL);
+       bool deepbind_enabled = (getenv("LDB_MODULES_ENABLE_DEEPBIND") != NULL);
 #endif
 
        ret = stat(path, &st);
@@ -981,21 +981,12 @@ static int ldb_modules_load_path(const char *path, const 
char *version)
        dlopen_flags = RTLD_NOW;
 #ifdef RTLD_DEEPBIND
        /*
-        * use deepbind if possible, to avoid issues with different
-        * system library variants, for example ldb modules may be linked
-        * against Heimdal while the application may use MIT kerberos.
-        *
-        * See the dlopen manpage for details.
-        *
-        * One typical user is the bind_dlz module of Samba,
-        * but symbol versioning might be enough...
+        * On systems where e.g. different kerberos libraries are used, like a
+        * mix of Heimdal and MIT Kerberos, LDB_MODULES_ENABLE_DEEPBIND should
+        * be set to avoid issues.
         *
-        * We need a way to disable this in order to allow the
-        * ldb_*ldap modules to work with a preloaded socket wrapper.
-        *
-        * So in future we may remove this completely
-        * or at least invert the default behavior.
-       */
+        * By default Linux distributions only have one Kerberos library.
+        */
        if (deepbind_enabled) {
                dlopen_flags |= RTLD_DEEPBIND;
        }
@@ -1104,8 +1095,8 @@ static int ldb_modules_load_dir(const char *modules_dir, 
const char *version)
        return LDB_SUCCESS;
 }
 
-/* 
-   load any additional modules from the given directory 
+/*
+   load any additional modules from the given directory
 */
 void ldb_set_modules_dir(struct ldb_context *ldb, const char *path)
 {
diff --git a/lib/ldb/man/ldb.3.xml b/lib/ldb/man/ldb.3.xml
index 1c0a2ece552..f8d3cb50446 100644
--- a/lib/ldb/man/ldb.3.xml
+++ b/lib/ldb/man/ldb.3.xml
@@ -243,11 +243,32 @@ ldb_search(3) manual pages.
        </itemizedlist>
 </refsect1>
 
+<refsect1>
+       <title>ENVIRONMENT VARIABLES</title>
+
+       <itemizedlist>
+               <listitem><para>
+                       <envar>LDB_URL</envar>
+                        - connect to the provided URL (cmdline tools only)
+               </para></listitem>
+
+               <listitem><para>
+                       <envar>LDB_MODULES_PATH</envar>
+                        - path where to load ldb modules from
+               </para></listitem>
+
+               <listitem><para>
+                       <envar>LDB_MODULES_ENABLE_DEEPBIND</envar>
+                        - enable RTLD_DEEPBIND when loading ldb modules
+               </para></listitem>
+       </itemizedlist>
+</refsect1>
+
 <refsect1>
        <title>Author</title>
 
        <para>
-               ldb was written by 
+               ldb was written by
                 <ulink url="https://www.samba.org/~tridge/";>Andrew 
Tridgell</ulink>.
        </para>
 
diff --git a/selftest/selftest.pl b/selftest/selftest.pl
index 26b1663b5b6..a0c4ec80f59 100755
--- a/selftest/selftest.pl
+++ b/selftest/selftest.pl
@@ -433,12 +433,6 @@ $ENV{UID_WRAPPER} = 1;
 # We are already hitting the limit, so double it.
 $ENV{NSS_WRAPPER_MAX_HOSTENTS} = 200;
 
-# Disable RTLD_DEEPBIND hack for Samba bind dlz module
-#
-# This is needed in order to allow the ldb_*ldap module
-# to work with a preloaded socket wrapper.
-$ENV{LDB_MODULES_DISABLE_DEEPBIND} = 1;
-
 my $socket_wrapper_dir;
 if ($opt_socket_wrapper) {
        $socket_wrapper_dir = SocketWrapper::setup_dir("$prefix_abs/w", 
$opt_socket_wrapper_pcap);
diff --git a/selftest/wscript b/selftest/wscript
index 52c34dcb88d..95e70706e63 100644
--- a/selftest/wscript
+++ b/selftest/wscript
@@ -333,9 +333,8 @@ def cmd_testonly(opt):
         asan_options += ":suppressions=${srcdir}/selftest/sanitizer/asan.supp"
         asan_options += " "
 
-        # And we need to disable RTLD_DEEPBIND in ldb and socket wrapper
-        no_leak_check = "LDB_MODULES_DISABLE_DEEPBIND=1 "
-        no_leak_check += "SOCKET_WRAPPER_DISABLE_DEEP_BIND=1"
+        # We need to disable RTLD_DEEPBIND in socket wrapper
+        no_leak_check = "SOCKET_WRAPPER_DISABLE_DEEP_BIND=1"
         no_leak_check += " "
         env.CORE_COMMAND = asan_options + no_leak_check + env.CORE_COMMAND
 
diff --git a/source3/script/tests/test_dfree_quota.sh 
b/source3/script/tests/test_dfree_quota.sh
index 91510165029..8248edfd7a7 100755
--- a/source3/script/tests/test_dfree_quota.sh
+++ b/source3/script/tests/test_dfree_quota.sh
@@ -191,10 +191,14 @@ test_smbcquotas()
                mproto="-m SMB1"
        fi
 
-       output=$($VALGRIND $smbcquotas $mproto //$SERVER/dfq "$@" 2>/dev/null | 
tr '\\' '/')
+       smbcquotas_stderr="$(mktemp "${PREFIX_ABS}/smbcquotas.XXXXXXXXXX")"
+
+       output=$($VALGRIND $smbcquotas $mproto //$SERVER/dfq "$@" 
2>"${smbcquotas_stderr}")
        status=$?
        if [ "$status" = "0" ]; then
-               received=$(echo "$output" | awk "/$SERVER\\/$user/ {printf 
\"%s%s%s\", \$3, \$4, \$5}")
+               rm "${smbcquotas_stderr}"
+
+               received=$(echo "$output" | tr '\\' '/' | awk 
"/$SERVER\\/$user/ {print \$3\$4\$5}")
                if [ "$expected" = "$received" ]; then
                        subunit_pass_test "$name"
                        return 0
@@ -203,6 +207,9 @@ test_smbcquotas()
                        return 1
                fi
        else
+               cat "${smbcquotas_stderr}"
+               rm "${smbcquotas_stderr}"
+
                echo "$output" | subunit_fail_test "$name"
                return $status
        fi


-- 
Samba Shared Repository

Reply via email to