]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Do not create an empty DB when accessing a sam.ldb
authorAndrew Bartlett <abartlet@samba.org>
Mon, 23 Nov 2020 06:35:37 +0000 (19:35 +1300)
committerKarolin Seeger <kseeger@samba.org>
Thu, 7 Jan 2021 09:50:29 +0000 (09:50 +0000)
Samba already does this for samba-tool and doing this should make
our errors more sensible, particularly in BIND9 if not provisioned
with the correct --dns-backend=DLZ_BIND9

The old error was like:

 named[62954]: samba_dlz: Unable to get basedn for
 /var/lib/samba/private/dns/sam.ldb
  - NULL Base DN invalid for a base search.

The new error will be like (in this case from the torture test):
 Failed to connect to Failed to connect to
 ldb:///home/abartlet/samba/st/chgdcpass/bind-dns/dns/sam.ldb:
 Unable to open tdb '/home/abartlet/samba/st/chgdcpass/bind-dns/dns/sam.ldb':
 No such file or directory: Operations error

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14579

Reviewed-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit d49e96bc45ea5e2d3364242dad36fe9094b7cc42)

Autobuild-User(v4-12-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-12-test): Thu Jan  7 09:50:29 UTC 2021 on sn-devel-184

source4/dsdb/samdb/samdb.c

index 10db0c50395d40d998adb0194496ea3389a0dc7a..d5890dec03eedc5c9a4df0d7212885bd9754dfd3 100644 (file)
@@ -63,6 +63,9 @@ int samdb_connect_url(TALLOC_CTX *mem_ctx,
        *ldb_ret = NULL;
        *errstring = NULL;
 
+       /* We create sam.ldb in provision, and never anywhere else */
+       flags |= LDB_FLG_DONT_CREATE_DB;
+
        if (remote_address == NULL) {
                ldb = ldb_wrap_find(url, ev_ctx, lp_ctx,
                                    session_info, NULL, flags);