[SCM] Samba Shared Repository - branch v4-15-stable updated

Jule Anger janger at samba.org
Tue Jun 28 06:50:04 UTC 2022


The branch, v4-15-stable has been updated
       via  7a04f5e4ffc VERSION: Disable GIT_SNAPSHOT for the 4.15.8 release.
       via  24a889f8c1a WHATSNEW: Add release notes for Samba 4.15.8.
       via  bee89680ce6 s3:waf: Fix version number of public libsmbconf
       via  86e9958156c s3: VFS: streams_xattr: Add the same accommodation to streams_xattr_unlinkat() as used in streams_xattr_renameat().
       via  31d9de1405c s3: tests: Add test that shows smbd crashes using vfs_fruit with fruit:resource = stream on deleting a file.
       via  c7b633f3172 s3/client: fix dfs deltree, resolve dfs path
       via  25fa2c75304 Add test smbclient 'delree' of dir (on DFS share)
       via  afb66509398 s3/client: fix dfs delete, resolve dfs path
       via  468736e7546 Add test smbclient 'del' of file (on DFS share)
       via  4442b27ee48 Add new dfs node msdfs-share pointing to new msdfs-share2
       via  a1bb535cfb3 cmdline_s4: re-initialise logging once loadparm is ready
       via  b7c4480448e s4/dlz: add support for bind 9.18
       via  1f42a865fae Revert "lib:util: Remove NIS support from string_match()"
       via  f179184a2be Revert "s3:smbd: Remove NIS support"
       via  e8a5a952868 Revert "docs-xml: Update documentation for removal of NIS support"
       via  c567aa1dd92 Revert "s3:auth: Fix user_in_list() for UNIX groups"
       via  d7ea8282448 s3:smbd: Out-by-4 error in smbd read reply max_send clamp
       via  604f94704f3 ldb: version 2.3.4
       via  f3879b3f09d s3:utils: Fix format error
       via  a9e40509704 lib/util/gpfswrap: remove unused gpfswrap_get_winattrs_path()
       via  948e6556979 vfs_gpfs: use handle based gpfswrap_get_winattrs()
       via  e387fb3202f lib/util/gpfswrap: remove unused gpfswrap_getacl()
       via  3b2cdf5dcdf vfs_gpfs: finally: use gpfswrap_fgetacl() instead of gpfswrap_getacl()
       via  4d21f10b32d lib/util/gpfswrap: add gpfswrap_fgetacl()
       via  6510b35db19 vfs_gpfs: pass fsp to gpfs_getacl_with_capability()
       via  85ea14d57e5 vfs_gpfs: pass fsp to vfs_gpfs_getacl()
       via  06e554b22e2 vfs_gpfs: use fsp in gpfsacl_get_posix_acl()
       via  59154a47398 vfs_gpfs: pass fsp to gpfsacl_get_posix_acl()
       via  7ae1fdcbb2f vfs_gpfs: pass fsp to gpfs_get_nfs4_acl()
       via  ae7e33885d7 vfs_gpfs: pass fsp to gpfsacl_emu_chmod()
       via  d8ad3e216e8 vfs_gpfs: indentation and README.Coding fixes
       via  c53efe8b481 s3:libads: Clear previous CLDAP ping flags when reusing the ADS_STRUCT
       via  5a4e0a40b42 third_party: Update waf to version 2.0.24
       via  e4361e407bc third_party: Update waf to verison 2.0.23
       via  fe22eec7eca third_party:waf: Print the version of waf at the end of the update script
       via  69c149f24b5 third_party: Update waf to version 2.0.22
       via  a10fd818566 third_party: Add a script to update waf
       via  e75837c115b s3: smbd: Allow a durable handle on a leased stat-open.
       via  a236b193c42 s4: torture: Add a new test - samba3.smb2.durable-open.stat-open.
       via  aa6022dd222 vfs_gpfs: Ignore pathref fds for gpfs:recalls check
       via  eed7de8a7e6 s3:passdb: Also allow to handle UPNs in lookup_name_smbconf()
       via  ca282bfff2b s3:passdb: Refactor lookup_name_smbconf()
       via  7defa615c57 s3:passdb: Use already defined pointer in lookup_name_smbconf()
       via  f11fef04471 s3:passdb: Add support to handle UPNs in lookup_name()
       via  84438001458 s3:passdb: Remove trailing spaces in lookup_sid.c
       via  e04bceba9aa VERSION: Bump version up to Samba 4.15.8...
      from  9049b45e55a VERSION: Disable GIT_SNAPSHOT for the 4.15.7 release.

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


- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 VERSION                                            |   2 +-
 WHATSNEW.txt                                       |  81 +++++++++++-
 buildtools/bin/waf                                 |   3 +-
 buildtools/wafsamba/wafsamba.py                    |   2 +-
 docs-xml/smbdotconf/security/hostsallow.xml        |   7 ++
 docs-xml/smbdotconf/security/invalidusers.xml      |  15 ++-
 docs-xml/smbdotconf/security/usernamemap.xml       |   5 +
 docs-xml/smbdotconf/security/validusers.xml        |   7 +-
 docs-xml/smbdotconf/winbind/winbindseparator.xml   |   4 +-
 lib/cmdline/cmdline_s4.c                           |  22 +++-
 lib/ldb/ABI/{ldb-2.0.5.sigs => ldb-2.4.3.sigs}     |   0
 ...pyldb-util-2.1.0.sigs => pyldb-util-2.4.3.sigs} |   0
 lib/ldb/wscript                                    |   2 +-
 lib/util/access.c                                  |  56 +++++++++
 lib/util/gpfswrap.c                                |  24 +---
 lib/util/gpfswrap.h                                |   4 +-
 python/samba/provision/sambadns.py                 |   6 +-
 .../blackbox/smbcacls_dfs_propagate_inherit.py     |   8 --
 selftest/knownfail                                 |   1 +
 selftest/knownfail.d/smb1-tests                    |   2 +
 selftest/target/Samba3.pm                          |  22 ++++
 source3/auth/user_util.c                           | 139 +++++++++++++++++----
 source3/client/client.c                            |  63 ++++++++--
 source3/libads/ldap.c                              |   7 ++
 source3/modules/vfs_gpfs.c                         |  90 +++++++------
 source3/modules/vfs_streams_xattr.c                |  24 +++-
 source3/passdb/lookup_sid.c                        |  52 ++++----
 source3/script/tests/test_fruit_resource_stream.sh |  41 ++++++
 source3/script/tests/test_smbclient_s3.sh          | 108 ++++++++++++++++
 source3/selftest/tests.py                          |   4 +
 source3/smbd/durable.c                             |   4 -
 source3/smbd/reply.c                               |   4 +-
 source3/smbd/share_access.c                        |  21 ++--
 source3/utils/regedit_hexedit.c                    |   2 +-
 source3/wscript                                    |   4 +
 source3/wscript_build                              |   2 +-
 source4/dns_server/dlz_minimal.h                   |   3 +
 source4/dns_server/wscript_build                   |  10 ++
 source4/setup/named.conf.dlz                       |   3 +
 source4/torture/smb2/durable_open.c                |  63 ++++++++++
 third_party/update.sh                              |   5 -
 third_party/waf/update.sh                          |  81 ++++++++++++
 third_party/waf/waflib/Build.py                    |   4 +-
 third_party/waf/waflib/Context.py                  |   8 +-
 third_party/waf/waflib/Runner.py                   |   4 +-
 third_party/waf/waflib/TaskGen.py                  |   8 +-
 third_party/waf/waflib/Tools/c_config.py           |   1 +
 third_party/waf/waflib/Tools/ccroot.py             |   1 +
 third_party/waf/waflib/Tools/compiler_c.py         |  25 ++--
 third_party/waf/waflib/Tools/compiler_cxx.py       |  25 ++--
 third_party/waf/waflib/Tools/msvc.py               |  19 ++-
 third_party/waf/waflib/Tools/python.py             |  13 +-
 third_party/waf/waflib/Tools/qt5.py                |   8 +-
 third_party/waf/waflib/Tools/tex.py                |   1 +
 third_party/waf/waflib/Tools/waf_unit_test.py      |   2 +-
 third_party/waf/waflib/Tools/winres.py             |  35 ++++++
 third_party/waf/waflib/Utils.py                    |  15 ++-
 .../waflib/extras/clang_compilation_database.py    |  30 ++---
 third_party/waf/waflib/extras/classic_runner.py    |  68 ++++++++++
 third_party/waf/waflib/extras/color_gcc.py         |   2 +-
 third_party/waf/waflib/extras/eclipse.py           |  74 ++++++++++-
 third_party/waf/waflib/extras/gccdeps.py           |  82 ++++++------
 third_party/waf/waflib/extras/haxe.py              | 131 +++++++++++++++++++
 third_party/waf/waflib/extras/msvcdeps.py          |  54 +++++---
 third_party/waf/waflib/extras/msvs.py              |   6 +-
 third_party/waf/waflib/extras/swig.py              |   2 +-
 third_party/waf/waflib/extras/wafcache.py          |  59 +++++++--
 third_party/waf/waflib/fixpy2.py                   |   2 +-
 68 files changed, 1375 insertions(+), 307 deletions(-)
 copy lib/ldb/ABI/{ldb-2.0.5.sigs => ldb-2.4.3.sigs} (100%)
 copy lib/ldb/ABI/{pyldb-util-2.1.0.sigs => pyldb-util-2.4.3.sigs} (100%)
 create mode 100755 source3/script/tests/test_fruit_resource_stream.sh
 create mode 100755 third_party/waf/update.sh
 create mode 100644 third_party/waf/waflib/extras/classic_runner.py
 create mode 100644 third_party/waf/waflib/extras/haxe.py


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index 4cacd09d12a..727996cc49b 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
 ########################################################
 SAMBA_VERSION_MAJOR=4
 SAMBA_VERSION_MINOR=15
-SAMBA_VERSION_RELEASE=7
+SAMBA_VERSION_RELEASE=8
 
 ########################################################
 # If a official release has a serious bug              #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 4ad852d8713..4061131cd79 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,3 +1,81 @@
+                   ==============================
+                   Release Notes for Samba 4.15.8
+                           June 28, 2022
+                   ==============================
+
+
+This is the latest stable release of the Samba 4.15 release series.
+
+
+Changes since 4.15.7
+--------------------
+
+o  Jeremy Allison <jra at samba.org>
+   * BUG 15042: Use pathref fd instead of io fd in vfs_default_durable_cookie.
+   * BUG 15099: Setting fruit:resource = stream in vfs_fruit causes a panic.
+
+o  Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
+   * BUG 14986: Add support for bind 9.18.
+   * BUG 15076: logging dsdb audit to specific files does not work.
+
+o  Ralph Boehme <slow at samba.org>
+   * BUG 15069: vfs_gpfs with vfs_shadowcopy2 fail to restore file if original
+     file had been deleted.
+
+o  Samuel Cabrero <scabrero at samba.org>
+   * BUG 15087: netgroups support removed.
+
+o  Samuel Cabrero <scabrero at suse.de>
+   * BUG 14674: net ads info shows LDAP Server: 0.0.0.0 depending on contacted
+     server.
+
+o  Stefan Metzmacher <metze at samba.org>
+   * BUG 15071: waf produces incorrect names for python extensions with Python
+     3.11.
+
+o  Noel Power <noel.power at suse.com>
+   * BUG 15100: smbclient commands del & deltree fail with
+     NT_STATUS_OBJECT_PATH_NOT_FOUND with DFS.
+
+o  Christof Schmitt <cs at samba.org>
+   * BUG 15055: vfs_gpfs recalls=no option prevents listing files.
+
+o  Andreas Schneider <asn at samba.org>
+   * BUG 15071: waf produces incorrect names for python extensions with Python
+     3.11.
+   * BUG 15091: Compile error in source3/utils/regedit_hexedit.c.
+   * BUG 15108: ldconfig: /lib64/libsmbconf.so.0 is not a symbolic link.
+
+o  Andreas Schneider <asn at cryptomilk.org>
+   * BUG 15054: smbd doesn't handle UPNs for looking up names.
+
+o  Robert Sprowson <webpages at sprow.co.uk>
+   * BUG 14443: Out-by-4 error in smbd read reply max_send clamp.
+
+
+#######################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical:matrix.org matrix room, or
+#samba-technical IRC channel on irc.libera.chat.
+
+If you do report problems then please try to send high quality
+feedback. If you don't provide vital information to help us track down
+the problem then you will probably be ignored.  All bug reports should
+be filed under the Samba 4.1 and newer product in the project's Bugzilla
+database (https://bugzilla.samba.org/).
+
+
+======================================================================
+== Our Code, Our Bugs, Our Responsibility.
+== The Samba Team
+======================================================================
+
+
+Release notes for older releases follow:
+----------------------------------------
                    ==============================
                    Release Notes for Samba 4.15.7
                            April 26, 2022
@@ -78,8 +156,7 @@ database (https://bugzilla.samba.org/).
 ======================================================================
 
 
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
                    ==============================
                    Release Notes for Samba 4.15.6
                            March 15, 2022
diff --git a/buildtools/bin/waf b/buildtools/bin/waf
index 041450fc131..d9cba343623 100755
--- a/buildtools/bin/waf
+++ b/buildtools/bin/waf
@@ -32,7 +32,7 @@ POSSIBILITY OF SUCH DAMAGE.
 
 import os, sys, inspect
 
-VERSION="2.0.21"
+VERSION="2.0.24"
 REVISION="x"
 GIT="x"
 INSTALL="x"
@@ -164,4 +164,3 @@ if __name__ == '__main__':
 
 	from waflib import Scripting
 	Scripting.waf_entry_point(cwd, VERSION, wafdir[0])
-
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 0427c90ca80..8a83576f89e 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -38,7 +38,7 @@ LIB_PATH="shared"
 
 os.environ['PYTHONUNBUFFERED'] = '1'
 
-if Context.HEXVERSION not in (0x2001500,):
+if Context.HEXVERSION not in (0x2001800,):
     Logs.error('''
 Please use the version of waf that comes with Samba, not
 a system installed version. See http://wiki.samba.org/index.php/Waf
diff --git a/docs-xml/smbdotconf/security/hostsallow.xml b/docs-xml/smbdotconf/security/hostsallow.xml
index a052e7f79cd..8b4b62268a3 100644
--- a/docs-xml/smbdotconf/security/hostsallow.xml
+++ b/docs-xml/smbdotconf/security/hostsallow.xml
@@ -41,6 +41,13 @@
 
     <para><command moreinfo="none">hosts allow = lapland, arvidsjaur</command></para>
 
+    <para>Example 4: allow only hosts in NIS netgroup "foonet", but 
+    deny access from one particular host</para>
+
+    <para><command moreinfo="none">hosts allow = @foonet</command></para>
+
+    <para><command moreinfo="none">hosts deny = pirate</command></para>
+
     <note><para>Note that access still requires suitable user-level passwords.</para></note>
 
     <para>See <citerefentry><refentrytitle>testparm</refentrytitle>
diff --git a/docs-xml/smbdotconf/security/invalidusers.xml b/docs-xml/smbdotconf/security/invalidusers.xml
index 268cdfad560..b2fb2b9d293 100644
--- a/docs-xml/smbdotconf/security/invalidusers.xml
+++ b/docs-xml/smbdotconf/security/invalidusers.xml
@@ -7,8 +7,21 @@
     to login to this service. This is really a <emphasis>paranoid</emphasis> 
     check to absolutely ensure an improper setting does not breach 
     your security.</para>
+		
+    <para>A name starting with a '@' is interpreted as an NIS 
+    netgroup first (if your system supports NIS), and then as a UNIX 
+    group if the name was not found in the NIS netgroup database.</para>
 
-    <para>A name starting with a '@' is interpreted UNIX group.</para>
+    <para>A name starting with '+' is interpreted only 
+    by looking in the UNIX group database via the NSS getgrnam() interface. A name starting with 
+    '&' is interpreted only by looking in the NIS netgroup database 
+    (this requires NIS to be working on your system). The characters 
+    '+' and '&' may be used at the start of the name in either order 
+    so the value <parameter moreinfo="none">+&group</parameter> means check the 
+    UNIX group database, followed by the NIS netgroup database, and 
+    the value <parameter moreinfo="none">&+group</parameter> means check the NIS
+    netgroup database, followed by the UNIX group database (the 
+    same as the '@' prefix).</para>
 
     <para>The current servicename is substituted for <parameter moreinfo="none">%S</parameter>. 
 		This is useful in the [homes] section.</para>
diff --git a/docs-xml/smbdotconf/security/usernamemap.xml b/docs-xml/smbdotconf/security/usernamemap.xml
index eab72bb8672..809a54c1e2f 100644
--- a/docs-xml/smbdotconf/security/usernamemap.xml
+++ b/docs-xml/smbdotconf/security/usernamemap.xml
@@ -58,6 +58,11 @@
 	</para>
 
 
+    <para>
+	If your system supports the NIS NETGROUP option then the netgroup database is checked before the <filename
+	moreinfo="none">/etc/group </filename> database for matching groups.
+	</para>
+
     <para>
 	You can map Windows usernames that have spaces in them by using double quotes around the name. For example:
 <programlisting>
diff --git a/docs-xml/smbdotconf/security/validusers.xml b/docs-xml/smbdotconf/security/validusers.xml
index 6b0bacfd78a..0b681a1fef5 100644
--- a/docs-xml/smbdotconf/security/validusers.xml
+++ b/docs-xml/smbdotconf/security/validusers.xml
@@ -4,10 +4,9 @@
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
 <description>
     <para>
-        This is a list of users that should be allowed to login to this service.
-        Names starting with an '@' are interpreted using the same rules as
-        described in the
-        <parameter moreinfo="none">invalid users</parameter> parameter.
+    This is a list of users that should be allowed to login to this service. Names starting with 
+    '@', '+' and  '&' are interpreted using the same rules as described in the 
+    <parameter moreinfo="none">invalid users</parameter> parameter.
     </para>
 
     <para>
diff --git a/docs-xml/smbdotconf/winbind/winbindseparator.xml b/docs-xml/smbdotconf/winbind/winbindseparator.xml
index 9be46109cd6..eda14f4e03a 100644
--- a/docs-xml/smbdotconf/winbind/winbindseparator.xml
+++ b/docs-xml/smbdotconf/winbind/winbindseparator.xml
@@ -10,9 +10,9 @@
 	and <filename moreinfo="none">nss_winbind.so</filename> modules for UNIX services.
 	</para>
 
-	<para>Please note that setting this parameter to + can cause problems
+	<para>Please note that setting this parameter to + causes problems
 	with group membership at least on glibc systems, as the character +
-	was used as a special character for NIS in /etc/group.</para>
+	is used as a special character for NIS in /etc/group.</para>
 </description>
 
 <value type="default">\</value>
diff --git a/lib/cmdline/cmdline_s4.c b/lib/cmdline/cmdline_s4.c
index 29e9f34bbe2..f8be4ed670c 100644
--- a/lib/cmdline/cmdline_s4.c
+++ b/lib/cmdline/cmdline_s4.c
@@ -31,6 +31,8 @@ static bool _samba_cmdline_load_config_s4(void)
 {
 	struct loadparm_context *lp_ctx = samba_cmdline_get_lp_ctx();
 	const char *config_file = NULL;
+	const struct samba_cmdline_daemon_cfg *cmdline_daemon_cfg = \
+		samba_cmdline_get_daemon_cfg();
 	bool ok;
 
 	/* Load smb conf */
@@ -45,15 +47,11 @@ static bool _samba_cmdline_load_config_s4(void)
 	}
 
 	switch (_config_type) {
-	case SAMBA_CMDLINE_CONFIG_SERVER: {
-		const struct samba_cmdline_daemon_cfg *cmdline_daemon_cfg =
-			samba_cmdline_get_daemon_cfg();
-
+	case SAMBA_CMDLINE_CONFIG_SERVER:
 		if (!cmdline_daemon_cfg->interactive) {
 			setup_logging(getprogname(), DEBUG_FILE);
 		}
 		break;
-	}
 	default:
 		break;
 	}
@@ -70,6 +68,20 @@ static bool _samba_cmdline_load_config_s4(void)
 		}
 	}
 
+	switch (_config_type) {
+	case SAMBA_CMDLINE_CONFIG_SERVER:
+		/*
+		 * We need to setup_logging *again* to ensure multi-file
+		 * logging is set up as specified in smb.conf.
+		 */
+		if (!cmdline_daemon_cfg->interactive) {
+			setup_logging(getprogname(), DEBUG_FILE);
+		}
+		break;
+	default:
+		break;
+	}
+
 	return true;
 }
 
diff --git a/lib/ldb/ABI/ldb-2.0.5.sigs b/lib/ldb/ABI/ldb-2.4.3.sigs
similarity index 100%
copy from lib/ldb/ABI/ldb-2.0.5.sigs
copy to lib/ldb/ABI/ldb-2.4.3.sigs
diff --git a/lib/ldb/ABI/pyldb-util-2.1.0.sigs b/lib/ldb/ABI/pyldb-util-2.4.3.sigs
similarity index 100%
copy from lib/ldb/ABI/pyldb-util-2.1.0.sigs
copy to lib/ldb/ABI/pyldb-util-2.4.3.sigs
diff --git a/lib/ldb/wscript b/lib/ldb/wscript
index c470f854b99..312879449e1 100644
--- a/lib/ldb/wscript
+++ b/lib/ldb/wscript
@@ -2,7 +2,7 @@
 
 APPNAME = 'ldb'
 # For Samba 4.15.x
-VERSION = '2.4.2'
+VERSION = '2.4.3'
 
 import sys, os
 
diff --git a/lib/util/access.c b/lib/util/access.c
index 5b53894b2ce..b1b4bffaeaa 100644
--- a/lib/util/access.c
+++ b/lib/util/access.c
@@ -114,6 +114,62 @@ static bool string_match(const char *tok,const char *s)
 		    && strequal_m(tok, s + str_len - tok_len)) {
 			return true;
 		}
+	} else if (tok[0] == '@') { /* netgroup: look it up */
+#ifdef HAVE_NETGROUP
+		DATA_BLOB tmp;
+		char *mydomain = NULL;
+		char *hostname = NULL;
+		bool netgroup_ok = false;
+		char nis_domain_buf[256];
+
+		if (memcache_lookup(
+			    NULL, SINGLETON_CACHE,
+			    data_blob_string_const_null("yp_default_domain"),
+			    &tmp)) {
+
+			SMB_ASSERT(tmp.length > 0);
+			mydomain = (tmp.data[0] == '\0')
+				? NULL : (char *)tmp.data;
+		} else {
+			if (getdomainname(nis_domain_buf,
+					  sizeof(nis_domain_buf)) == 0) {
+				mydomain = &nis_domain_buf[0];
+				memcache_add(NULL,
+					     SINGLETON_CACHE,
+					     data_blob_string_const_null(
+						     "yp_default_domain"),
+					     data_blob_string_const_null(
+						     mydomain));
+			} else {
+				mydomain = NULL;
+			}
+		}
+
+		if (!mydomain) {
+			DEBUG(0,("Unable to get default yp domain. "
+				"Try without it.\n"));
+		}
+		if (!(hostname = smb_xstrdup(s))) {
+			DEBUG(1,("out of memory for strdup!\n"));
+			return false;
+		}
+
+		netgroup_ok = innetgr(tok + 1, hostname, (char *) 0, mydomain);
+
+		DBG_INFO("%s %s of domain %s in netgroup %s\n",
+			 netgroup_ok ? "Found" : "Could not find",
+			 hostname,
+			 mydomain?mydomain:"(ANY)",
+			 tok+1);
+
+		SAFE_FREE(hostname);
+
+		if (netgroup_ok)
+			return true;
+#else
+		DEBUG(0,("access: netgroup support is not configured\n"));
+		return false;
+#endif
 	} else if (strequal_m(tok, "ALL")) {	/* all: match any */
 		return true;
 	} else if (strequal_m(tok, "FAIL")) {	/* fail: match any */
diff --git a/lib/util/gpfswrap.c b/lib/util/gpfswrap.c
index 5cf6d2148e7..d05358e141e 100644
--- a/lib/util/gpfswrap.c
+++ b/lib/util/gpfswrap.c
@@ -23,7 +23,7 @@
 
 static int (*gpfs_set_share_fn)(int fd, unsigned int allow, unsigned int deny);
 static int (*gpfs_set_lease_fn)(int fd, unsigned int type);
-static int (*gpfs_getacl_fn)(const char *pathname, int flags, void *acl);
+static int (*gpfs_fgetacl_fn)(int fd, int flags, void *acl);
 static int (*gpfs_putacl_fn)(const char *pathname, int flags, void *acl);
 static int (*gpfs_get_realfilename_path_fn)(const char *pathname,
 					    char *filenamep,
@@ -33,8 +33,6 @@ static int (*gpfs_set_winattrs_path_fn)(const char *pathname,
 					struct gpfs_winattr *attrs);
 static int (*gpfs_set_winattrs_fn)(int fd, int flags,
 				   struct gpfs_winattr *attrs);
-static int (*gpfs_get_winattrs_path_fn)(const char *pathname,
-					struct gpfs_winattr *attrs);
 static int (*gpfs_get_winattrs_fn)(int fd, struct gpfs_winattr *attrs);
 static int (*gpfs_ftruncate_fn)(int fd, gpfs_off64_t length);
 static int (*gpfs_lib_init_fn)(int flags);
@@ -70,12 +68,11 @@ int gpfswrap_init(void)
 
 	gpfs_set_share_fn	      = dlsym(l, "gpfs_set_share");
 	gpfs_set_lease_fn	      = dlsym(l, "gpfs_set_lease");
-	gpfs_getacl_fn		      = dlsym(l, "gpfs_getacl");
+	gpfs_fgetacl_fn		      = dlsym(l, "gpfs_getacl_fd");
 	gpfs_putacl_fn		      = dlsym(l, "gpfs_putacl");
 	gpfs_get_realfilename_path_fn = dlsym(l, "gpfs_get_realfilename_path");
 	gpfs_set_winattrs_path_fn     = dlsym(l, "gpfs_set_winattrs_path");
 	gpfs_set_winattrs_fn	      = dlsym(l, "gpfs_set_winattrs");
-	gpfs_get_winattrs_path_fn     = dlsym(l, "gpfs_get_winattrs_path");
 	gpfs_get_winattrs_fn	      = dlsym(l, "gpfs_get_winattrs");
 	gpfs_ftruncate_fn	      = dlsym(l, "gpfs_ftruncate");
 	gpfs_lib_init_fn	      = dlsym(l, "gpfs_lib_init");
@@ -112,14 +109,14 @@ int gpfswrap_set_lease(int fd, unsigned int type)
 	return gpfs_set_lease_fn(fd, type);
 }
 
-int gpfswrap_getacl(const char *pathname, int flags, void *acl)
+int gpfswrap_fgetacl(int fd, int flags, void *acl)
 {
-	if (gpfs_getacl_fn == NULL) {
+	if (gpfs_fgetacl_fn == NULL) {
 		errno = ENOSYS;
 		return -1;
 	}
 
-	return gpfs_getacl_fn(pathname, flags, acl);
+	return gpfs_fgetacl_fn(fd, flags, acl);
 }
 
 int gpfswrap_putacl(const char *pathname, int flags, void *acl)
@@ -166,17 +163,6 @@ int gpfswrap_set_winattrs(int fd, int flags, struct gpfs_winattr *attrs)
 	return gpfs_set_winattrs_fn(fd, flags, attrs);
 }
 
-int gpfswrap_get_winattrs_path(const char *pathname,
-			       struct gpfs_winattr *attrs)
-{
-	if (gpfs_get_winattrs_path_fn == NULL) {
-		errno = ENOSYS;
-		return -1;
-	}
-
-	return gpfs_get_winattrs_path_fn(pathname, attrs);
-}
-
 int gpfswrap_get_winattrs(int fd, struct gpfs_winattr *attrs)
 {
 	if (gpfs_get_winattrs_fn == NULL) {
diff --git a/lib/util/gpfswrap.h b/lib/util/gpfswrap.h
index 764cf686d2e..1e74496c060 100644
--- a/lib/util/gpfswrap.h
+++ b/lib/util/gpfswrap.h
@@ -29,7 +29,7 @@
 int gpfswrap_init(void);
 int gpfswrap_set_share(int fd, unsigned int allow, unsigned int deny);
 int gpfswrap_set_lease(int fd, unsigned int type);
-int gpfswrap_getacl(const char *pathname, int flags, void *acl);
+int gpfswrap_fgetacl(int fd, int flags, void *acl);
 int gpfswrap_putacl(const char *pathname, int flags, void *acl);
 int gpfswrap_get_realfilename_path(const char *pathname,
 				   char *filenamep,
@@ -38,8 +38,6 @@ int gpfswrap_set_winattrs_path(const char *pathname,
 			       int flags,
 			       struct gpfs_winattr *attrs);
 int gpfswrap_set_winattrs(int fd, int flags, struct gpfs_winattr *attrs);
-int gpfswrap_get_winattrs_path(const char *pathname,
-			       struct gpfs_winattr *attrs);
 int gpfswrap_get_winattrs(int fd, struct gpfs_winattr *attrs);
 int gpfswrap_ftruncate(int fd, gpfs_off64_t length);
 int gpfswrap_lib_init(int flags);
diff --git a/python/samba/provision/sambadns.py b/python/samba/provision/sambadns.py
index 6823f9ee56b..404b346a885 100644
--- a/python/samba/provision/sambadns.py
+++ b/python/samba/provision/sambadns.py
@@ -1017,6 +1017,7 @@ def create_named_conf(paths, realm, dnsdomain, dns_backend, logger):
         bind9_12 = '#'
         bind9_14 = '#'
         bind9_16 = '#'
+        bind9_18 = '#'
         if bind_info.upper().find('BIND 9.8') != -1:
             bind9_8 = ''
         elif bind_info.upper().find('BIND 9.9') != -1:
@@ -1031,6 +1032,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:
+            bind9_18 = ''
         elif bind_info.upper().find('BIND 9.7') != -1:
             raise ProvisioningError("DLZ option incompatible with BIND 9.7.")
         elif bind_info.upper().find('BIND_9.13') != -1:
@@ -1050,7 +1053,8 @@ def create_named_conf(paths, realm, dnsdomain, dns_backend, logger):
                     "BIND9_11": bind9_11,
                     "BIND9_12": bind9_12,
                     "BIND9_14": bind9_14,
-                    "BIND9_16": bind9_16
+                    "BIND9_16": bind9_16,
+                    "BIND9_18": bind9_18
                     })
 
 
diff --git a/python/samba/tests/blackbox/smbcacls_dfs_propagate_inherit.py b/python/samba/tests/blackbox/smbcacls_dfs_propagate_inherit.py


-- 
Samba Shared Repository



More information about the samba-cvs mailing list