[SCM] Samba Shared Repository - branch v4-12-stable updated
Karolin Seeger
kseeger at samba.org
Thu Jul 2 11:15:22 UTC 2020
The branch, v4-12-stable has been updated
via 217bc17f1d2 VERSION: Disable GIT_SNAPSHOT for the 4.12.5 release.
via c61cb94a463 WHATSNEW: Add release notes for Samba 4.12.5.
via 8d47600f110 VERSION: Bump version up to 4.12.5.
via 05b8919c7c2 Merge tag 'samba-4.12.4' into v4-12-test
via 50badbae62f s3: msdfs: Fix missing struct stat return on msdfs links by doing an LSTAT call.
via 54d6efeb917 s3: torture: Add test for getting attibutes on an MSDFS link.
via 68c0b008bdd s3: torture: Add a MSDFS-ATTRIBUTE test.
via 50ff83cb3e3 s3: libsmb: Info level SMB_FIND_EA_SIZE encodes attibutes as a uint16, not a uint8.
via 7db0eb75680 s3: libsmb: Info level SMB_FIND_INFO_STANDARD encodes attibutes as a uint16, not a uint8.
via bb210d6d29b s3: libsmb: Info level SMB_FIND_FILE_BOTH_DIRECTORY_INFO encodes attibutes as a uint32, not a uint8.
via 10e8d8b4b13 s3: libsmb: Info level SMB2_FIND_ID_BOTH_DIRECTORY_INFO encodes attibutes as a uint32, not a uint8.
via 1f8a77fe3aa s3: smbd: Allow a SHUTDOWN_CLOSE on a file with outstanding aio if there are no client connections alive.
via 8666dc1eec6 s3: smbd: Add smbXsrv_client_valid_connections().
via 19c6e21cfd6 s3: selftest: Add samba3.blackbox.aio-outstanding test.
via 3db89a6c880 ldb_ldap: fix off-by-one increment in lldb_add_msg_attr
via 1049c5776f8 lib/ldb: add unit test for ldb_ldap internal code
via 0ac77960440 Fix usage of ldap_get_values_len for msDS-AdditionalDnsHostName
via 0e668997c83 Properly handle msDS-AdditionalDnsHostName returned from Windows DC
via 60e73282191 selftest: add tests for binary msDS-AdditionalDnsHostName
via 63c70acd4f4 Fix a typo in recent net man page changes
via f50cb3a0fbf libcli ldap tests: remove use of zero length array
via 7b1bac7d084 Add net-ads-join dnshostname=fqdn option
via 71efed33f47 Add msDS-AdditionalDnsHostName entries to the keytab
via 279e72fe334 Add a test for msDS-AdditionalDnsHostName entries in keytab
via b3630d58e48 Refactor ads_keytab_add_entry() to make it iterable
via 533a4be557b Fix accidental overwrite of dnsHostName by the last netbios alias
via e25e574ba04 Add a test to check dNSHostName with netbios aliases
via 5015bbbd701 s3:libads: prefer ENCTYPE_AES256_CTS_HMAC_SHA1_96 in ads_keytab_add_entry()
via 2b15eee1bc0 docs-xml: update list of posible VFS operations for vfs_full_audit
via c2051cdfda6 s3: libsmbclient: Finish unifing bad iconv behavior across CORE NT1 SMB2 protocols.
via ea64f5fb2d8 s3: libsmb: In SMB2 return NT_STATUS_INVALID_NETWORK_RESPONSE if name conversion ended up with a NULL filename.
via cc105695a60 s3: libsmb: In SMB1 old protocol - return NT_STATUS_INVALID_NETWORK_RESPONSE if name conversion ended up with a NULL filename.
via 290ae67b24e s3: selftest: Add test_smbclient_iconv.sh to check client behavior on bad name conversion.
via 701cbabc92e s3: selftest: Add share definition [bad_iconv] in fileserver.
via f02893f5360 winbindd: Fix a use-after-free when winbind clients exit
via 572eb426f3f s3: lib: Paranoia around use of snprintf copying into a fixed-size buffer from a getenv() pointer.
via eae0ae3cae3 s3:gencache: Allow to open gencache as read-only
via b91925075ef lib:util: Add test for path_expand_tilde()
via f0654fa47e0 lib:util: Add path_expand_tilde()
via 76c8a9deaa7 s4/rpc_server/dnsserver: Allow parsing of dnsProperty to fail gracefully
via 0acfdab2a6a selftest: Add test for handling of "short" dnsProperty records
via 50653906976 librpc/idl: Add dnsp_DnsProperty_short
via 11abc955736 VERSION: Bump version up to 4.12.4...
from 6ecd05dfbc2 VERSION: Disable GIT_SNAPSHOT for the 4.12.4 release.
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-12-stable
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
VERSION | 2 +-
WHATSNEW.txt | 67 +++++-
docs-xml/manpages/net.8.xml | 7 +-
docs-xml/manpages/vfs_full_audit.8.xml | 70 +++++--
lib/ldb/ldb_ldap/ldb_ldap.c | 2 -
lib/ldb/tests/lldb_ldap.c | 105 ++++++++++
lib/ldb/wscript | 14 ++
lib/util/tests/test_util_paths.c | 127 ++++++++++++
lib/util/util_paths.c | 76 +++++++
lib/util/util_paths.h | 9 +
lib/util/wscript_build | 6 +
libcli/ldap/tests/ldap_message_test.c | 2 +-
librpc/idl/dnsp.idl | 16 ++
python/samba/tests/blackbox/ndrdump.py | 21 ++
python/samba/tests/dns.py | 51 +++++
selftest/knownfail.d/dns | 7 +
selftest/target/Samba3.pm | 20 ++
selftest/tests.py | 2 +
source3/lib/gencache.c | 63 +++++-
source3/libads/ads_proto.h | 5 +
source3/libads/kerberos_keytab.c | 224 ++++++++++++---------
source3/libads/ldap.c | 81 ++++++++
source3/libnet/libnet_join.c | 12 +-
source3/librpc/idl/libnet_join.idl | 1 +
source3/libsmb/cli_smb2_fnum.c | 9 +-
source3/libsmb/clilist.c | 17 +-
...orce_close_share.sh => test_aio_outstanding.sh} | 64 +++---
source3/script/tests/test_smbclient_iconv.sh | 53 +++++
source3/selftest/tests.py | 41 ++++
source3/smbd/close.c | 26 +++
source3/smbd/globals.h | 1 +
source3/smbd/msdfs.c | 7 +
source3/smbd/smb2_server.c | 14 ++
source3/torture/torture.c | 79 ++++++++
source3/utils/net_ads.c | 9 +-
source3/winbindd/winbindd_dual.c | 28 ++-
source4/dns_server/dnsserver_common.c | 9 +-
source4/rpc_server/dnsserver/dnsdb.c | 72 ++++++-
testprogs/blackbox/test_net_ads.sh | 60 ++++++
39 files changed, 1306 insertions(+), 173 deletions(-)
create mode 100644 lib/ldb/tests/lldb_ldap.c
create mode 100644 lib/util/tests/test_util_paths.c
copy source3/script/tests/{test_force_close_share.sh => test_aio_outstanding.sh} (50%)
create mode 100755 source3/script/tests/test_smbclient_iconv.sh
Changeset truncated at 500 lines:
diff --git a/VERSION b/VERSION
index e964a32a686..44492c06950 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
########################################################
SAMBA_VERSION_MAJOR=4
SAMBA_VERSION_MINOR=12
-SAMBA_VERSION_RELEASE=4
+SAMBA_VERSION_RELEASE=5
########################################################
# If a official release has a serious bug #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index d6b26d8dce5..a5b554fe11f 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,3 +1,66 @@
+ ==============================
+ Release Notes for Samba 4.12.5
+ July 02, 2020
+ ==============================
+
+
+This is the latest stable release of the Samba 4.12 release series.
+
+
+Changes since 4.12.4
+--------------------
+
+o Jeremy Allison <jra at samba.org>
+ * BUG 14301: Fix smbd panic on force-close share during async io.
+ * BUG 14374: Fix segfault when using SMBC_opendir_ctx() routine for share
+ folder that contains incorrect symbols in any file name.
+ * BUG 14391: Fix DFS links.
+
+o Andrew Bartlett <abartlet at samba.org>
+ * BUG 14310: Can't use DNS functionality after a Windows DC has been in
+ domain.
+
+o Alexander Bokovoy <ab at samba.org>
+ * BUG 14413: ldapi search to FreeIPA crashes.
+
+o Isaac Boukris <iboukris at gmail.com>
+ * BUG 14396: Add net-ads-join dnshostname=fqdn option.
+ * BUG 14406: Fix adding msDS-AdditionalDnsHostName to keytab with Windows DC.
+
+o Björn Jacke <bj at sernet.de>
+ * BUG 14386: docs-xml: Update list of posible VFS operations for
+ vfs_full_audit.
+
+o Volker Lendecke <vl at samba.org>
+ * BUG 14382: winbindd: Fix a use-after-free when winbind clients exit.
+
+o Andreas Schneider <asn at samba.org>
+ * BUG 14370: Client tools are not able to read gencache anymore.
+
+
+#######################################
+Reporting bugs & Development Discussion
+#######################################
+
+Please discuss this release on the samba-technical mailing list or by
+joining the #samba-technical IRC channel on irc.freenode.net.
+
+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.12.4
July 02, 2020
@@ -79,8 +142,8 @@ database (https://bugzilla.samba.org/).
======================================================================
-Release notes for older releases follow:
-----------------------------------------
+----------------------------------------------------------------------
+
==============================
Release Notes for Samba 4.12.3
diff --git a/docs-xml/manpages/net.8.xml b/docs-xml/manpages/net.8.xml
index 37dd30b7864..951ddcd7c3a 100644
--- a/docs-xml/manpages/net.8.xml
+++ b/docs-xml/manpages/net.8.xml
@@ -481,7 +481,7 @@ The remote server must be specified with the -S option.
<refsect2>
<title>[RPC|ADS] JOIN [TYPE] [--no-dns-updates] [-U username[%password]]
-[createupn=UPN] [createcomputer=OU] [machinepass=PASS]
+[dnshostname=FQDN] [createupn=UPN] [createcomputer=OU] [machinepass=PASS]
[osName=string osVer=string] [options]</title>
<para>
@@ -496,6 +496,11 @@ be created.</para>
joining the domain.
</para>
+<para>
+[FQDN] (ADS only) set the dnsHostName attribute during the join.
+The default format is netbiosname.dnsdomain.
+</para>
+
<para>
[UPN] (ADS only) set the principalname attribute during the join. The default
format is host/netbiosname at REALM.
diff --git a/docs-xml/manpages/vfs_full_audit.8.xml b/docs-xml/manpages/vfs_full_audit.8.xml
index 7b17e2e1ad4..e6c05c3fdc3 100644
--- a/docs-xml/manpages/vfs_full_audit.8.xml
+++ b/docs-xml/manpages/vfs_full_audit.8.xml
@@ -38,60 +38,98 @@
complete set of Samba VFS operations:</para>
<simplelist>
+ <member>aio_force</member>
+ <member>audit_file</member>
+ <member>brl_lock_windows</member>
+ <member>brl_unlock_windows</member>
<member>chdir</member>
<member>chflags</member>
<member>chmod</member>
- <member>chown</member>
<member>close</member>
<member>closedir</member>
<member>connect</member>
- <member>copy_chunk_send</member>
- <member>copy_chunk_recv</member>
+ <member>connectpath</member>
+ <member>create_dfs_pathat</member>
+ <member>create_file</member>
<member>disconnect</member>
<member>disk_free</member>
+ <member>durable_cookie</member>
+ <member>durable_disconnect</member>
+ <member>durable_reconnect</member>
+ <member>fallocate</member>
<member>fchmod</member>
<member>fchown</member>
+ <member>fdopendir</member>
+ <member>fget_dos_attributes</member>
<member>fget_nt_acl</member>
<member>fgetxattr</member>
+ <member>file_id_create</member>
<member>flistxattr</member>
<member>fremovexattr</member>
+ <member>fs_capabilities</member>
+ <member>fsctl</member>
+ <member>fset_dos_attributes</member>
<member>fset_nt_acl</member>
<member>fsetxattr</member>
+ <member>fs_file_id</member>
<member>fstat</member>
<member>fsync</member>
+ <member>fsync_recv</member>
+ <member>fsync_send</member>
<member>ftruncate</member>
+ <member>get_alloc_size</member>
<member>get_compression</member>
+ <member>get_dfs_referrals</member>
+ <member>get_dos_attributes</member>
+ <member>get_dos_attributes_recv</member>
+ <member>get_dos_attributes_send</member>
+ <member>getlock</member>
<member>get_nt_acl</member>
<member>get_quota</member>
+ <member>get_real_filename</member>
<member>get_shadow_copy_data</member>
- <member>getlock</member>
<member>getwd</member>
<member>getxattr</member>
+ <member>getxattrat_recv</member>
+ <member>getxattrat_send</member>
+ <member>is_offline</member>
<member>kernel_flock</member>
- <member>link</member>
+ <member>lchown</member>
+ <member>linkat</member>
<member>linux_setlease</member>
<member>listxattr</member>
<member>lock</member>
<member>lseek</member>
<member>lstat</member>
- <member>mkdir</member>
- <member>mknod</member>
+ <member>mkdirat</member>
+ <member>mknodat</member>
+ <member>ntimes</member>
+ <member>offload_read_recv</member>
+ <member>offload_read_send</member>
+ <member>offload_write_recv</member>
+ <member>offload_write_send</member>
<member>open</member>
<member>opendir</member>
<member>pread</member>
+ <member>pread_recv</member>
+ <member>pread_send</member>
<member>pwrite</member>
+ <member>pwrite_recv</member>
+ <member>pwrite_send</member>
<member>read</member>
<member>readdir</member>
- <member>readlink</member>
+ <member>readdir_attr</member>
+ <member>readlinkat</member>
<member>realpath</member>
+ <member>recvfile</member>
<member>removexattr</member>
- <member>rename</member>
+ <member>renameat</member>
<member>rewinddir</member>
- <member>rmdir</member>
<member>seekdir</member>
<member>sendfile</member>
<member>set_compression</member>
- <member>set_nt_acl</member>
+ <member>set_dos_attributes</member>
+ <member>set_offline</member>
<member>set_quota</member>
<member>setxattr</member>
<member>snap_check_path</member>
@@ -99,15 +137,19 @@
<member>snap_delete</member>
<member>stat</member>
<member>statvfs</member>
- <member>symlink</member>
+ <member>streaminfo</member>
+ <member>strict_lock_check</member>
+ <member>symlinkat</member>
+ <member>sys_acl_blob_get_fd</member>
+ <member>sys_acl_blob_get_file</member>
<member>sys_acl_delete_def_file</member>
<member>sys_acl_get_fd</member>
<member>sys_acl_get_file</member>
<member>sys_acl_set_fd</member>
<member>sys_acl_set_file</member>
<member>telldir</member>
- <member>unlink</member>
- <member>utime</member>
+ <member>translate_name</member>
+ <member>unlinkat</member>
<member>write</member>
</simplelist>
diff --git a/lib/ldb/ldb_ldap/ldb_ldap.c b/lib/ldb/ldb_ldap/ldb_ldap.c
index d7222997732..0531f8a62ae 100644
--- a/lib/ldb/ldb_ldap/ldb_ldap.c
+++ b/lib/ldb/ldb_ldap/ldb_ldap.c
@@ -176,8 +176,6 @@ static int lldb_add_msg_attr(struct ldb_context *ldb,
el->num_values++;
}
- msg->num_elements++;
-
return 0;
}
diff --git a/lib/ldb/tests/lldb_ldap.c b/lib/ldb/tests/lldb_ldap.c
new file mode 100644
index 00000000000..eea9f22f6b9
--- /dev/null
+++ b/lib/ldb/tests/lldb_ldap.c
@@ -0,0 +1,105 @@
+/*
+ * from cmocka.c:
+ * These headers or their equivalents should be included prior to
+ * including
+ * this header file.
+ *
+ * #include <stdarg.h>
+ * #include <stddef.h>
+ * #include <setjmp.h>
+ *
+ * This allows test applications to use custom definitions of C standard
+ * library functions and types.
+ */
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include <errno.h>
+#include <unistd.h>
+#include <talloc.h>
+
+#include <ldb.h>
+#include <ldb_private.h>
+#include <string.h>
+#include <ctype.h>
+
+int ldb_ldap_init(const char *version);
+
+#include "ldb_ldap/ldb_ldap.c"
+
+struct test_ctx {
+ struct tevent_context *ev;
+ struct ldb_context *ldb;
+ struct ldb_message *msg;
+};
+
+static int lldb_msg_setup(void **state)
+{
+ struct test_ctx *test_ctx;
+
+ test_ctx = talloc_zero(NULL, struct test_ctx);
+ assert_non_null(test_ctx);
+
+ test_ctx->ev = tevent_context_init(test_ctx);
+ assert_non_null(test_ctx->ev);
+
+ test_ctx->ldb = ldb_init(test_ctx, test_ctx->ev);
+ assert_non_null(test_ctx->ldb);
+
+ test_ctx->msg = ldb_msg_new(test_ctx);
+ assert_non_null(test_ctx->msg);
+
+ *state = test_ctx;
+ return 0;
+}
+
+static int lldb_msg_teardown(void **state)
+{
+ struct test_ctx *test_ctx = talloc_get_type_abort(*state,
+ struct test_ctx);
+
+ talloc_free(test_ctx);
+ return 0;
+}
+
+static void test_lldb_add_msg_attr(void **state)
+{
+ struct test_ctx *test_ctx = talloc_get_type_abort(*state,
+ struct test_ctx);
+ struct ldb_message *msg = test_ctx->msg;
+ int ret;
+ unsigned int num_elements = 0;
+ struct berval **v = NULL;
+
+ v = talloc_zero_array(test_ctx, struct berval *, 2);
+ assert_non_null(v);
+
+ v[0] = talloc_zero(v, struct berval);
+ assert_non_null(v[0]);
+
+ v[0]->bv_val = talloc_strdup(msg, "dc=example,dc=test");
+ assert_non_null(v[0]->bv_val);
+
+ v[0]->bv_len = strlen(v[0]->bv_val);
+
+ num_elements = msg->num_elements;
+
+ ret = lldb_add_msg_attr(test_ctx->ldb, msg, "defaultNamingContext", v);
+ assert_int_equal(ret, LDB_SUCCESS);
+ assert_int_equal(msg->num_elements, num_elements + 1);
+}
+
+
+int main(int argc, const char **argv)
+{
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test_setup_teardown(test_lldb_add_msg_attr,
+ lldb_msg_setup,
+ lldb_msg_teardown),
+ };
+
+ return cmocka_run_group_tests(tests, NULL, NULL);
+}
diff --git a/lib/ldb/wscript b/lib/ldb/wscript
index 9eb3ddad0c0..edc3343e827 100644
--- a/lib/ldb/wscript
+++ b/lib/ldb/wscript
@@ -527,6 +527,15 @@ def build(bld):
deps='cmocka ldb ldb_tdb_err_map',
install=False)
+ # If both libldap and liblber are available, test ldb_ldap
+ # code for a regression of bz#14413 -- even if we don't build
+ # it ourselves and simply using the system version
+ if bld.env.LIB_LDAP and bld.env.LIB_LBER:
+ bld.SAMBA_BINARY('lldb_ldap_test',
+ source='tests/lldb_ldap.c',
+ deps='cmocka talloc lber ldap ldb',
+ install=False)
+
if bld.CONFIG_SET('HAVE_LMDB'):
bld.SAMBA_BINARY('ldb_mdb_mod_op_test',
source='tests/ldb_mod_op_test.c',
@@ -628,6 +637,11 @@ def test(ctx):
# 'ldb_key_value_sub_txn_tdb_test'
'ldb_parse_test']
+ # if LIB_LDAP and LIB_LBER defined, then we can test ldb_ldap backend
+ # behavior regression for bz#14413
+ if env.LIB_LDAP and env.LIB_LBER:
+ test_exes += ["lldb_ldap_test"]
+
if env.HAVE_LMDB:
test_exes += ['ldb_mdb_mod_op_test',
'ldb_lmdb_test',
diff --git a/lib/util/tests/test_util_paths.c b/lib/util/tests/test_util_paths.c
new file mode 100644
index 00000000000..b89abf0aea1
--- /dev/null
+++ b/lib/util/tests/test_util_paths.c
@@ -0,0 +1,127 @@
+/*
+ * Unix SMB/CIFS implementation.
+ *
+ * Copyright (C) 2020 Andreas Schneider <asn at samba.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+#include <talloc.h>
+
+#include "lib/replace/replace.h"
+#include "lib/util/util_paths.c"
+
+static int setup(void **state)
+{
+ TALLOC_CTX *mem_ctx = talloc_new(NULL);
+
+ assert_non_null(mem_ctx);
+ *state = mem_ctx;
+
+ return 0;
+}
+
+static int teardown(void **state)
+{
+ TALLOC_CTX *mem_ctx = *state;
+ TALLOC_FREE(mem_ctx);
+
+ return 0;
+}
+
+static void test_get_user_home_dir(void **state)
+{
+ TALLOC_CTX *mem_ctx = *state;
+ struct passwd *pwd = getpwuid(getuid());
+ char *user;
+
+ user = get_user_home_dir(mem_ctx);
+ assert_non_null(user);
+ assert_string_equal(user, pwd->pw_dir);
+
+ TALLOC_FREE(user);
+}
+
+static void test_path_expand_tilde(void **state)
+{
+ TALLOC_CTX *mem_ctx = *state;
+ char h[256] = {0};
+ char *d = NULL;
+ const char *user = NULL;
+ char *home = NULL;
+
+ user = getenv("USER");
+ if (user == NULL){
+ user = getenv("LOGNAME");
+ }
+
+ /* In certain CIs there no such variables */
+ if (user == NULL) {
+ struct passwd *pw = getpwuid(getuid());
+ if (pw){
+ user = pw->pw_name;
+ }
+ }
--
Samba Shared Repository
More information about the samba-cvs
mailing list