[SCM] Samba Shared Repository - branch master updated
The branch, master has been updated via da627106cdb dbcheck: Check Deleted Objects and reduce noise in reports about expired tombstones via 1ec1c35a3ae selftest: Confirm that we fix any errors on the Deleted Objects container itself via 144b32ae01f s4:kdc:mit: Fix heap-use-after-free via 12ca2e37b75 selftest: Fix libasan preload from 4f80f5f9046 s3: libsmb: cli_state_save_tcon(). Don't deepcopy tcon struct when temporarily swapping out a connection on a cli_state. https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit da627106cdbf8d375b25fa3338a717447f3dbb6e Author: Andrew Bartlett Date: Thu Dec 10 16:03:49 2020 +1300 dbcheck: Check Deleted Objects and reduce noise in reports about expired tombstones These reports (about recently deleted objects) create concern about a perfectly normal part of DB operation. We must not operate on objects that are expired or we might reanimate them, but we must fix "Deleted Objects" if it is wrong (mostly it is set as being deleted in , but in alpha19 we got this wrong). BUG: https://bugzilla.samba.org/show_bug.cgi?id=14593 Signed-off-by: Andrew Bartlett Reviewed-by: Douglas Bagnall Autobuild-User(master): Andrew Bartlett Autobuild-Date(master): Wed Feb 3 05:29:11 UTC 2021 on sn-devel-184 commit 1ec1c35a3ae422720df491fc9bc787c9944c Author: Andrew Bartlett Date: Fri Dec 11 15:37:04 2020 +1300 selftest: Confirm that we fix any errors on the Deleted Objects container itself BUG: https://bugzilla.samba.org/show_bug.cgi?id=14593 Signed-off-by: Andrew Bartlett Reviewed-by: Douglas Bagnall commit 144b32ae01fb388865737d6c92fd77fe0cecad81 Author: Andreas Schneider Date: Tue Feb 2 09:29:14 2021 +0100 s4:kdc:mit: Fix heap-use-after-free We need to duplicate the string as lp_load() will free the s4_conf_file pointer and set it again. Found with AddressSanitizer. Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett commit 12ca2e37b753db1f39a16f3c6f8c7260abde9085 Author: Andreas Schneider Date: Tue Feb 2 09:17:17 2021 +0100 selftest: Fix libasan preload libasan.so needs to be the first library which is preloaded or it wont work. Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett --- Summary of changes: python/samba/dbchecker.py | 25 +- selftest/selftest.pl | 2 +- source4/kdc/mit_samba.c| 10 +++-- ...cted-dbcheck-link-output-lost-deleted-user3.txt | 16 +++--- testprogs/blackbox/dbcheck-links.sh| 2 +- testprogs/blackbox/dbcheck-oldrelease.sh | 12 +++ 6 files changed, 54 insertions(+), 13 deletions(-) Changeset truncated at 500 lines: diff --git a/python/samba/dbchecker.py b/python/samba/dbchecker.py index 364dc9427d7..d10d765434c 100644 --- a/python/samba/dbchecker.py +++ b/python/samba/dbchecker.py @@ -1816,6 +1816,11 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base))) # old static provision dumps return False +if dn in self.deleted_objects_containers: +# The Deleted Objects container will look like an expired +# tombstone +return False + repl = ndr_unpack(drsblobs.replPropertyMetaDataBlob, repl_val) isDeleted = self.find_repl_attid(repl, drsuapi.DRSUAPI_ATTID_isDeleted) @@ -1829,7 +1834,25 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base))) if delta <= tombstone_delta: return False -self.report("SKIPING: object %s is an expired tombstone" % dn) +expunge_time = delete_time + tombstone_delta + +delta_days = delta / (24 * 60 * 60) + +if delta_days <= 2: +self.report("SKIPPING additional checks on object " +"%s which very recently " +"became an expired tombstone (normal)" % dn) +self.report("INFO: it is expected this will be expunged " +"by the next daily task some time after %s, " +"%d hours ago" +% (time.ctime(expunge_time), delta // (60 * 60))) +else: +self.report("SKIPPING: object %s is an expired tombstone" % dn) +self.report("INFO: it was expected this object would have " +"been expunged soon after" +"%s, %d days ago" +% (time.ctime(expunge_time), delta_days)) + self.report("isDeleted: attid=0x%08x version=%d invocation=%s usn=%s (local=%s) at %s" % ( isDeleted.attid,
[SCM] Samba Shared Repository - branch master updated
The branch, master has been updated via 4f80f5f9046 s3: libsmb: cli_state_save_tcon(). Don't deepcopy tcon struct when temporarily swapping out a connection on a cli_state. via e93e6108837 s3: torture: Change the SMB1-only UID-REGRESSION-TEST to do an explicit copy of the tcon struct in use. via f9ca91bd293 s3: smbtorture3: Ensure run_tcon_test() always replaces any saved tcon and shuts down correctly even in error paths. via dc701959cad s3: smbtorture3: Ensure we *always* replace the saved saved_tcon even in an error condition. via faba89ad59e s3: libsmb: Ensure we disconnect the temporary SMB1 tcon pointer on failure to set up encryption. via 068f4a977f0 s3: tests: Add regression test for bug 13992. from 35459b753af selftest: Add support for python-dateutil >= 2.7.1 https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 4f80f5f9046b64a9e5e0503b1cb54f1492c4faec Author: Jeremy Allison Date: Thu Jan 28 11:08:48 2021 -0800 s3: libsmb: cli_state_save_tcon(). Don't deepcopy tcon struct when temporarily swapping out a connection on a cli_state. This used to make a deep copy of either cli->smb2.tcon or cli->smb1.tcon, but this leaves the original tcon pointer in place which will then get TALLOC_FREE()'d when the new tree connection is made on this cli_state. As there may be pipes open on the old tree connection with talloc'ed state allocated using the original tcon pointer as a talloc parent we can't deep copy and then free this pointer as that will fire the destructors on the pipe memory and mark them as not connected. This call is used to temporarily swap out a tcon pointer (whilst keeping existing pipes open) to allow a new tcon on the same cli_state and all users correctly call cli_state_restore_tcon() once they are finished with the new tree connection. Just return the existing pointer and set the old value to NULL. We know we MUST be calling cli_state_restore_tcon() below to restore the original tcon tree connection pointer before closing the session. Remove the knownfail.d entry. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13992 Signed-off-by: Jeremy Allison Reviewed-by: Andreas Schneider Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Tue Feb 2 21:05:25 UTC 2021 on sn-devel-184 commit e93e6108837eff0cebad8dc26d055c0e1386093a Author: Jeremy Allison Date: Thu Jan 28 17:35:55 2021 -0800 s3: torture: Change the SMB1-only UID-REGRESSION-TEST to do an explicit copy of the tcon struct in use. For this test only, explicitly copy the SMB1 tcon struct, don't use cli_state_save_tcon()//cli_state_restore_tcon() as these calls will soon change to just manipulate the pointer to avoid TALLOC_FREE() on the tcon struct which calls destructors on child pipe data. In SMB1 this test calls cli_tdis() twice with an invalid vuid and expects the SMB1 tcon struct to be preserved across the calls. SMB1 cli_tdis() frees cli->smb1.tcon so we must put back a deep copy into cli->smb1.tcon to be able to safely call cli_tdis() again. This is a test-only hack. Real client code uses cli_state_save_tcon()/cli_state_restore_tcon() if it needs to temporarily swap out the active tcon on a client connection. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13992 Signed-off-by: Jeremy Allison Reviewed-by: Andreas Schneider commit f9ca91bd293e9f2710c4449c5d4f5d016a066049 Author: Jeremy Allison Date: Thu Jan 28 10:56:18 2021 -0800 s3: smbtorture3: Ensure run_tcon_test() always replaces any saved tcon and shuts down correctly even in error paths. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13992 Signed-off-by: Jeremy Allison Reviewed-by: Andreas Schneider commit dc701959cad7bf15aa47cad6451212606520f67f Author: Jeremy Allison Date: Thu Jan 28 10:46:33 2021 -0800 s3: smbtorture3: Ensure we *always* replace the saved saved_tcon even in an error condition. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13992 Signed-off-by: Jeremy Allison Reviewed-by: Andreas Schneider commit faba89ad59eaa189f325be17377645862080a965 Author: Jeremy Allison Date: Thu Jan 28 14:32:53 2021 -0800 s3: libsmb: Ensure we disconnect the temporary SMB1 tcon pointer on failure to set up encryption. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13992 Signed-off-by: Jeremy Allison Reviewed-by: Andreas Schneider commit 068f4a977f0539f790809d580bf22d2362032e3d Author: Jeremy Allison Date: Thu Jan 28 14:07:23 2021 -0800 s3: tests: Add regression test for bug 13992. Subtle extra test. Mark as knownfail for now. '^ user1$' must
[SCM] Samba Shared Repository - branch master updated
The branch, master has been updated via 35459b753af selftest: Add support for python-dateutil >= 2.7.1 via 273a3c089d6 selftest: Directly import python-iso8601 via 30450bff669 python:subunit: Use UTC timezone from datatime module from 0a93f5367bc s3:smbd: Fix invalid memory access in posix_sys_acl_blob_get_fd() https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 35459b753aff4dfa7c7e7c70c9783844705a42c0 Author: Andreas Schneider Date: Tue Feb 2 13:44:01 2021 +0100 selftest: Add support for python-dateutil >= 2.7.1 This uses the more widespread python-dateutil instead of python-iso8601. Signed-off-by: Andreas Schneider Reviewed-by: Alexander Bokovoy Autobuild-User(master): Andreas Schneider Autobuild-Date(master): Tue Feb 2 19:53:35 UTC 2021 on sn-devel-184 commit 273a3c089d6ada16a9101ab81f901f99c1d55485 Author: Andreas Schneider Date: Tue Feb 2 13:11:56 2021 +0100 selftest: Directly import python-iso8601 Signed-off-by: Andreas Schneider Reviewed-by: Alexander Bokovoy commit 30450bff66982eb7295d7a00be42052cbd6ad596 Author: Andreas Schneider Date: Mon Feb 1 10:38:08 2021 +0100 python:subunit: Use UTC timezone from datatime module Signed-off-by: Andreas Schneider Reviewed-by: Alexander Bokovoy --- Summary of changes: python/samba/subunit/__init__.py | 3 --- python/samba/subunit/run.py | 6 ++ selftest/subunithelper.py| 10 -- 3 files changed, 10 insertions(+), 9 deletions(-) Changeset truncated at 500 lines: diff --git a/python/samba/subunit/__init__.py b/python/samba/subunit/__init__.py index fef06ffa1cd..f823172dcb6 100644 --- a/python/samba/subunit/__init__.py +++ b/python/samba/subunit/__init__.py @@ -18,9 +18,6 @@ """Subunit test protocol.""" import samba - -import iso8601 - import unittest diff --git a/python/samba/subunit/run.py b/python/samba/subunit/run.py index e369b15aa02..45425e6c2e6 100755 --- a/python/samba/subunit/run.py +++ b/python/samba/subunit/run.py @@ -24,8 +24,6 @@ $ python -m samba.subunit.run mylib.tests.test_suite """ -from iso8601.iso8601 import UTC - import datetime import os import sys @@ -184,7 +182,7 @@ class TestProtocolClient(unittest.TestResult): ":param datetime: A datetime.datetime object. """ -time = a_datetime.astimezone(UTC) +time = a_datetime.astimezone(datetime.timezone.utc) self._stream.write("time: %04d-%02d-%02d %02d:%02d:%02d.%06dZ\n" % ( time.year, time.month, time.day, time.hour, time.minute, time.second, time.microsecond)) @@ -458,7 +456,7 @@ class AutoTimingTestResultDecorator(HookedTestResultDecorator): time = self._time if time is not None: return -time = datetime.datetime.utcnow().replace(tzinfo=UTC) +time = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc) self.decorated.time(time) @property diff --git a/selftest/subunithelper.py b/selftest/subunithelper.py index 4fbb5442839..fd356d92156 100644 --- a/selftest/subunithelper.py +++ b/selftest/subunithelper.py @@ -24,8 +24,14 @@ import sys import os from samba import subunit from samba.subunit.run import TestProtocolClient -from samba.subunit import iso8601 import unittest +try: +from dateutil.parser import isoparse as iso_parse_date +except ImportError: +try: +from iso8601 import parse_date as iso_parse_date; +except ImportError: +print('Install either python-dateutil >= 2.7.1 or python-iso8601') VALID_RESULTS = set(['success', 'successful', 'failure', 'fail', 'skip', @@ -63,7 +69,7 @@ def parse_results(msg_ops, statistics, fh): elif command == "time": msg_ops.control_msg(l) try: -dt = iso8601.parse_date(arg.rstrip("\n")) +dt = iso_parse_date(arg.rstrip("\n")) except TypeError as e: print("Unable to parse time line: %s" % arg.rstrip("\n")) else: -- Samba Shared Repository
[SCM] Samba Shared Repository - branch v4-14-test updated
The branch, v4-14-test has been updated via cc1568be4d4 script/autobuild.py: let cleanup() ignore errors from rmdir_force() by default via c933135969b script/autobuild.py: split out a rmdir_force() helper function via c1a4cb97d1d selftest: make/use a copy of GNUPGHOME via 81b36b389cb s4:selftest: use plansmbtorture4testsuite() for 'rpc.echo' via 3eba14718dd s3:selftest: run test_smbclient_tarmode.pl with a fixed subdirectory name via f1c7967b568 selftest/Samba4: allow get_cmd_env_vars() to take an overwrite dictionary via 85800df9035 selftest/Samba4: correctly pass KRB5CCNAME to provision via 9d5f5e821cb selftest/Samba4: make more use of get_cmd_env_vars() via 56c2c0f651e selftest:Samba4: avoid File::Path 'make_path' in setup_dns_hub_internal() via f480161b754 selftest: allow a prefix under /m/username/ via 9fed2749c03 Makefile: add support for 'make testonly' from 99673b77b06 s3:idmap_hash: reliable return ID_TYPE_BOTH https://git.samba.org/?p=samba.git;a=shortlog;h=v4-14-test - Log - commit cc1568be4d4250390a9ad03c84f5e260fc7acffd Author: Stefan Metzmacher Date: Fri Nov 20 09:20:14 2020 + script/autobuild.py: let cleanup() ignore errors from rmdir_force() by default It's not useful to generate a python backtrace from within the cleanup code. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14628 Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme (cherry picked from commit 9883ac45939f253a63f3ff312fc3912c5f02cdac) Autobuild-User(v4-14-test): Karolin Seeger Autobuild-Date(v4-14-test): Tue Feb 2 10:29:44 UTC 2021 on sn-devel-184 commit c933135969be29072971f96481b05f499fd48b57 Author: Stefan Metzmacher Date: Fri Nov 20 09:20:14 2020 + script/autobuild.py: split out a rmdir_force() helper function That also tries to re-add write permissions before removing. In future we'll have jobs changing there directory to read-only. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14628 Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme (cherry picked from commit 7a5df2deaaf62a7edd7c64251f75ab15abe94c07) commit c1a4cb97d1d71b974eed2ecb5f34bb1425f36294 Author: Stefan Metzmacher Date: Sun Nov 22 23:28:31 2020 +0100 selftest: make/use a copy of GNUPGHOME That makes it possible to run tests from a read only source tree. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14628 Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme (cherry picked from commit 86343125a55d184c15aa94cd01f4c8893a5a0917) commit 81b36b389cb01eca9b2f0a2a452d290e21f31394 Author: Stefan Metzmacher Date: Sun Nov 22 22:43:36 2020 +0100 s4:selftest: use plansmbtorture4testsuite() for 'rpc.echo' This makes sure "--basedir=$SELFTEST_TMPDIR" is passed to smbtorture. Tests should not create files in the build nor the source directory! BUG: https://bugzilla.samba.org/show_bug.cgi?id=14628 Signed-off-by: Stefan Metzmacher Reviewed-by: Andreas Schneider (cherry picked from commit d06f2c22d726a5ec7bd804d89154ee272ab1a679) commit 3eba14718dd6269fe1657de15a2f47c848b60518 Author: Stefan Metzmacher Date: Thu Dec 17 06:38:14 2020 +0100 s3:selftest: run test_smbclient_tarmode.pl with a fixed subdirectory name $PREFIX is the the value from --with-selftest-prefix. The result of the test should not depend on --with-selftest-prefix, the 'long_path' test in particular. If the path is to long smbclient (via libarchive) will only put the full path into a PAX HEADER as 'path' keyword, that's fine in general, modern tools handle it just fine. But Perl's Archive::Tar don't handle it and only seems truncated file names. I have a fix for Archive::Tar, see: https://git.samba.org/?p=metze/samba/wip.git;a=shortlog;h=c75037d0a06a96cdaca3f3b20a6d237e768b075b But finishing that is a task for another day, for now I just want to remove the dependency to --with-selftest-prefix. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14628 Signed-off-by: Stefan Metzmacher Reviewed-by: Andreas Schneider (cherry picked from commit e0d9b656452ba6277cdc7f0abb2a06d3d284ef3a) commit f1c7967b568034da2707ccc4bd1f64358d55eacc Author: Stefan Metzmacher Date: Mon Nov 23 11:35:33 2020 +0100 selftest/Samba4: allow get_cmd_env_vars() to take an overwrite dictionary This way we can use it on even in some special cases, where we combine variables from multiple environments. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14628 Signed-off-by: Stefan Metzmacher Reviewed-by: Andreas Schneider (cherry picked from commit 568c7d38debaa5ccd90d6ea33c683de512de7005)
[SCM] Socket Wrapper Repository - branch master updated
The branch, master has been updated via f69ed59 swrap: add basic support for fd-passing via SCM_RIGHTS via 66a5bef tests: Add test for socket_wrapper fd-passing support via 650115f swrap: always check new fd's against socket_fds_max and use libc_close() for cleanup via a79dec9 swrap: add const to swrap_add_socket_info() via c740bbe swrap: let swrap_sendmsg_before_unix() create a copy of msg_tmp.msg_control via de81995 swrap: add stubs for swrap_{sendmsg,recvmsg}_{before,after}_unix() via e030a18 swrap: filter out SCM_{RIGHTS,CREDENTIALS} on inet socket via 00f61ed swrap: add error checking/cleanup to swrap_sendmsg_filter_cmsghdr() via 00650ff swrap: Fix MSGHDR check in sendmsg() via 5b2a982 swrap: print out SOCKET_WRAPPER_PACKAGE and SOCKET_WRAPPER_VERSION on first use from ef90a76 src/socket_wrapper.c: Improve checks and debug output of socket_wrapper_dir() https://git.samba.org/?p=socket_wrapper.git;a=shortlog;h=master - Log - commit f69ed59e64acac52c1f8b3f8c7a76c5db0bc5877 Author: Stefan Metzmacher Date: Mon Jun 29 14:10:54 2020 +0200 swrap: add basic support for fd-passing via SCM_RIGHTS We only allow passing up to 6 fds in a single sendmsg call, in order to keep the logic simple. That's more than enough for Samba's use of fd-passing, there we only pass a single fd and the fd will be closed in the sender on success. It means it's ok to keep the socket_info.io.pck_{snd,rcv} fields per process and the PCAP generation will still work as expected. If these constraints turn out to be a problem for other applications, we need to change to a more complex design and move the socket_info array into a shared memory file and use shared robust mutexes. But for now we just want to support multi-channel testing in Samba. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11899 Signed-off-by: Stefan Metzmacher Reviewed-by: Anoop C S Reviewed-by: Andreas Schneider commit 66a5bef7f9aac4d70124bc8efec72dcd434c660a Author: Anoop C S Date: Thu Jul 23 15:59:29 2020 +0530 tests: Add test for socket_wrapper fd-passing support Signed-off-by: Anoop C S Reviewed-by: Stefan Metzmacher Reviewed-by: Andreas Schneider commit 650115f1b4ed2fd4aa7d65ce7578bc919e0601f4 Author: Stefan Metzmacher Date: Tue Jun 30 17:53:20 2020 +0200 swrap: always check new fd's against socket_fds_max and use libc_close() for cleanup Signed-off-by: Stefan Metzmacher Reviewed-by: Anoop C S Reviewed-by: Andreas Schneider commit a79dec9866a0c42ff60c72ba04483818d4575127 Author: Stefan Metzmacher Date: Tue Jun 30 17:51:29 2020 +0200 swrap: add const to swrap_add_socket_info() Signed-off-by: Stefan Metzmacher Reviewed-by: Anoop C S Reviewed-by: Andreas Schneider commit c740bbe30affb7b94c6cca5f65a4e9047a1119ec Author: Stefan Metzmacher Date: Mon Jun 29 09:39:22 2020 +0200 swrap: let swrap_sendmsg_before_unix() create a copy of msg_tmp.msg_control With fd-passing we'll have to modify the content of it. Signed-off-by: Stefan Metzmacher Reviewed-by: Anoop C S Reviewed-by: Andreas Schneider commit de819958b00b48f285a1f31bfee1f8bee8e16827 Author: Stefan Metzmacher Date: Mon Jun 29 09:27:24 2020 +0200 swrap: add stubs for swrap_{sendmsg,recvmsg}_{before,after}_unix() In order to implement fd-passing of socket_wrapper simulated sockets we need to modify the msghdr structures from the callers. Signed-off-by: Stefan Metzmacher Reviewed-by: Anoop C S Reviewed-by: Andreas Schneider commit e030a1897873f3cb24e7d5a35adab421a9d11b9f Author: Stefan Metzmacher Date: Mon Jun 29 13:07:26 2020 +0200 swrap: filter out SCM_{RIGHTS,CREDENTIALS} on inet socket These are only valid on unix domain sockets and ignored otherwise (at least on Linux). Signed-off-by: Stefan Metzmacher Reviewed-by: Anoop C S Reviewed-by: Andreas Schneider commit 00f61edc7363cd17435b559beb04b567200fb38f Author: Stefan Metzmacher Date: Mon Jun 29 10:12:07 2020 +0200 swrap: add error checking/cleanup to swrap_sendmsg_filter_cmsghdr() Signed-off-by: Stefan Metzmacher Reviewed-by: Anoop C S Reviewed-by: Andreas Schneider commit 00650ffb0b913010aab7a004fa2d3eadf2f2f007 Author: Anoop C S Date: Wed May 22 10:45:37 2019 +0530 swrap: Fix MSGHDR check in sendmsg() Check for msg_controllen and msg_control data members from msghdr structure needs to be validated on the received omsg pointer rather than on newly created msghdr struture inside the wrapper. Signed-off-by: Anoop C S Reviewed-by: Anoop C S Reviewed-by: Andreas Schneider commit 5b2a98203bbb0230785a65429338b52bd377971b Author: