[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Fri Mar 20 09:27:06 MDT 2015


The branch, master has been updated
       via  1f523a6 ctdb-tests: Avoid early exits in scripts that appear on tail of a pipe
       via  4f82ef4 ctdb-scripts: Simplify 00.ctdb event script
       via  e617e3e backupkey: Use ndr_pull_struct_blob_all()
       via  820a0a9 libcli/auth: Match Declaration of netlogon_creds_cli_context_tmp with implementation
       via  d3b208c dsdb-tests: Give more helpful information about attribute differences
      from  4f4151e s3: lib: libsmbclient: If reusing a server struct, check every cli->timout miliseconds if it's still valid before use.

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


- Log -----------------------------------------------------------------
commit 1f523a628ae05adfdda2c329af22788ba73ff759
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Mar 20 14:36:51 2015 +1100

    ctdb-tests: Avoid early exits in scripts that appear on tail of a pipe
    
    When executing a shell script code "foo | bar", if "bar" terminates early,
    then "foo" can get I/O error when writing to stdout.
    
    The tdbtool stub did not wait to read anything from stdin when it is
    expected to.  This would cause tests to fail randomly under load when
    tdbtool process exited early.
    
    Similarly, debug function read from stdin only under certain conditions
    (higher debug and when not reading from tty).  Otherwise, exited early.
    
    Thanks to Andrew Bartlett for noticing the problem and Catalyst Cloud
    (http://catalyst.net.nz/cloud) for providing resources to test fixes.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Pair-Programmed-With: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Fri Mar 20 16:26:37 CET 2015 on sn-devel-104

commit 4f82ef4b388406e9a1c802adfc81b1786d6f786d
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Fri Mar 20 01:30:55 2015 +1100

    ctdb-scripts: Simplify 00.ctdb event script
    
    Avoid extra which commands.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit e617e3e74b7ea13bcf3ce385f3926e50e38dbe44
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri Mar 20 14:32:00 2015 +1300

    backupkey: Use ndr_pull_struct_blob_all()
    
    This avoids bad decrypts from falling down to later code and getting
    the error code wrong, by strictly requiring the NDR parse to use all the
    data.  A bad decyrpt is very unlikely to get the length correct, and
    so fall down to the other checks.
    
    This should fix:
    UNEXPECTED(failure): samba4.rpc.backupkey with seal.backupkey.server_wrap_decrypt_wrong_r2(ad_dc_ntvfs)
    REASON: Exception: Exception: ../source4/torture/rpc/backupkey.c:1926: r.out.result was WERR_INVALID_ACCESS, expected WERR_INVALID_PARAM: decrypt should fail with WERR_INVALID_PARAM
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11174
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Stefan (metze) Metzmacher <metze at samba.org>

commit 820a0a91fbd341f3172b0d048a920cb2538bbd38
Author: Thomas Schulz <schulz at adi.com>
Date:   Mon Mar 16 10:21:46 2015 -0700

    libcli/auth: Match Declaration of netlogon_creds_cli_context_tmp with implementation
    
    I have been building 4.2.0 with the GNU C compiler but I decided to see
    how it works with the Sun C 5.11 compiler. The Sun compiler complains
    about a identifier being redeclared in libcli/auth/netlogon_creds_cli.c
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11140
    
    Reviewed-by: Christof Schmitt <cs at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit d3b208c1fc0258bef62731a5d47486ec233ccd1f
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Mar 19 18:35:05 2015 +1300

    dsdb-tests: Give more helpful information about attribute differences
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

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

Summary of changes:
 ctdb/config/events.d/00.ctdb                       | 11 ++++----
 ctdb/config/functions                              |  6 +++-
 ctdb/tests/eventscripts/stubs/tdbtool              | 32 +++++++++++++++++-----
 libcli/auth/netlogon_creds_cli.h                   |  2 +-
 source4/dsdb/tests/python/tombstone_reanimation.py |  4 ++-
 source4/rpc_server/backupkey/dcesrv_backupkey.c    |  8 +++---
 6 files changed, 44 insertions(+), 19 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/config/events.d/00.ctdb b/ctdb/config/events.d/00.ctdb
index ec18175..07bc7a7 100755
--- a/ctdb/config/events.d/00.ctdb
+++ b/ctdb/config/events.d/00.ctdb
@@ -17,17 +17,18 @@ select_tdb_checker ()
 {
     # Find the best TDB consistency check available.
     use_tdb_tool_check=false
-    if which tdbtool >/dev/null 2>&1 && \
-	echo "help" | tdbtool | grep -q check ; then
+    which tdbtool >/dev/null 2>&1 && found_tdbtool=true
+    which tdbdump >/dev/null 2>&1 && found_tdbdump=true
 
-	use_tdb_tool_check=true
-    elif which tdbtool >/dev/null 2>&1 && which tdbdump >/dev/null 2>&1 ; then
+    if $found_tdbtool && echo "help" | tdbtool | grep -q check ; then
+	    use_tdb_tool_check=true
+    elif $found_tdbtool && $found_tdbdump ; then
 	    cat <<EOF
 WARNING: The installed 'tdbtool' does not offer the 'check' subcommand.
  Using 'tdbdump' for database checks.
  Consider updating 'tdbtool' for better checks!
 EOF
-    elif which tdbdump >/dev/null 2>&1 ; then
+    elif $found_tdbdump ; then
 	cat <<EOF
 WARNING: 'tdbtool' is not available.
  Using 'tdbdump' to check the databases.
diff --git a/ctdb/config/functions b/ctdb/config/functions
index e6fe43f..da267d2 100755
--- a/ctdb/config/functions
+++ b/ctdb/config/functions
@@ -65,9 +65,13 @@ debug ()
 	# here document.
 	if [ -n "$1" ] ; then
 	    echo "DEBUG: $*"
-	elif ! tty -s ; then
+	else
 	    sed -e 's@^@DEBUG: @'
 	fi
+    else
+	if [ -z "$1" ] ; then
+	    cat >/dev/null
+	fi
     fi
 }
 
diff --git a/ctdb/tests/eventscripts/stubs/tdbtool b/ctdb/tests/eventscripts/stubs/tdbtool
index c6c0a16..816df3b 100755
--- a/ctdb/tests/eventscripts/stubs/tdbtool
+++ b/ctdb/tests/eventscripts/stubs/tdbtool
@@ -1,15 +1,33 @@
 #!/bin/sh
 
-if [ -z "$1" ] ; then
+do_help ()
+{
     if [ "$FAKE_TDBTOOL_SUPPORTS_CHECK" = "yes" ] ; then
 	echo "check"
     fi
-fi
+    exit 0
+}
 
-if [ "$FAKE_TDB_IS_OK" = "yes" ] ; then
-    echo "Database integrity is OK"
-else
-    echo "Database is busted"
-fi
+do_check ()
+{
+    if [ "$FAKE_TDB_IS_OK" = "yes" ] ; then
+	echo "Database integrity is OK"
+    else
+	echo "Database is busted"
+    fi
+    exit 0
+}
+
+do_cmd ()
+{
+    case "$*" in
+	*check) do_check ;;
+	help) do_help ;;
+	"") read tdb_cmd && [ -n "$tdb_cmd" ] && do_cmd $tdb_cmd ;;
+	*) echo "$0: Not implemented: $*" ; exit 1 ;;
+    esac
+}
+
+do_cmd $*
 
 exit 0
diff --git a/libcli/auth/netlogon_creds_cli.h b/libcli/auth/netlogon_creds_cli.h
index 401ce8c..006367a 100644
--- a/libcli/auth/netlogon_creds_cli.h
+++ b/libcli/auth/netlogon_creds_cli.h
@@ -44,9 +44,9 @@ NTSTATUS netlogon_creds_cli_context_global(struct loadparm_context *lp_ctx,
 NTSTATUS netlogon_creds_cli_context_tmp(const char *client_computer,
 				const char *client_account,
 				enum netr_SchannelType type,
-				enum dcerpc_AuthLevel auth_level,
 				uint32_t proposed_flags,
 				uint32_t required_flags,
+				enum dcerpc_AuthLevel auth_level,
 				const char *server_computer,
 				const char *server_netbios_domain,
 				TALLOC_CTX *mem_ctx,
diff --git a/source4/dsdb/tests/python/tombstone_reanimation.py b/source4/dsdb/tests/python/tombstone_reanimation.py
index ad780fd..af676fa 100644
--- a/source4/dsdb/tests/python/tombstone_reanimation.py
+++ b/source4/dsdb/tests/python/tombstone_reanimation.py
@@ -83,7 +83,9 @@ class RestoredObjectAttributesBaseTestCase(samba.tests.TestCase):
         return self.search_dn(msg['dn'])
 
     def assertAttributesEqual(self, obj_orig, attrs_orig, obj_restored, attrs_rest):
-        self.assertEqual(attrs_orig, attrs_rest, "Actual object does not have expected attributes")
+        self.assertEqual(attrs_orig, attrs_rest,
+                         "Actual object does not have expected attributes, missing from expected (%s), extra (%s)"
+                         % (str(attrs_orig.difference(attrs_rest)), str(attrs_rest.difference(attrs_orig))))
         # remove volatile attributes, they can't be equal
         attrs_orig -= set(["uSNChanged", "dSCorePropagationData", "whenChanged"])
         for attr in attrs_orig:
diff --git a/source4/rpc_server/backupkey/dcesrv_backupkey.c b/source4/rpc_server/backupkey/dcesrv_backupkey.c
index 749e48b..b3b7074 100644
--- a/source4/rpc_server/backupkey/dcesrv_backupkey.c
+++ b/source4/rpc_server/backupkey/dcesrv_backupkey.c
@@ -1496,8 +1496,8 @@ static WERROR bkrp_server_wrap_decrypt_data(struct dcesrv_call_state *dce_call,
 		return WERR_INVALID_PARAM;
 	}
 
-	ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &decrypt_request,
-				       (ndr_pull_flags_fn_t)ndr_pull_bkrp_server_side_wrapped);
+	ndr_err = ndr_pull_struct_blob_all(&blob, mem_ctx, &decrypt_request,
+					   (ndr_pull_flags_fn_t)ndr_pull_bkrp_server_side_wrapped);
 	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
 		return WERR_INVALID_PARAM;
 	}
@@ -1534,8 +1534,8 @@ static WERROR bkrp_server_wrap_decrypt_data(struct dcesrv_call_state *dce_call,
 
 	arcfour_crypt_blob(encrypted_blob.data, encrypted_blob.length, &symkey_blob);
 
-	ndr_err = ndr_pull_struct_blob(&encrypted_blob, mem_ctx, &rc4payload,
-				       (ndr_pull_flags_fn_t)ndr_pull_bkrp_rc4encryptedpayload);
+	ndr_err = ndr_pull_struct_blob_all(&encrypted_blob, mem_ctx, &rc4payload,
+					   (ndr_pull_flags_fn_t)ndr_pull_bkrp_rc4encryptedpayload);
 	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
 		return WERR_INVALID_PARAM;
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list