[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Wed Jun 24 00:55:03 MDT 2015


The branch, master has been updated
       via  225d701 correct sense of macro variable name in SMB2 durable open test
       via  69e511e Avoid casting pointer to unsigned long long for NULL check
       via  8ed6523 Use large enough unsigned values in server_id IDL
       via  8a3d548 remove trailing whitespace in Pidl/Samba4/Python.pm
       via  3c9f795 Treat unsigned 64 bit IDL values as unsigned long long in Python
       via  c3cf813 Byte order reversal shouldn't assume size_t is 64 bit.
      from  fa4f4fe s4:gensec/gssapi: make use of add gssapi_get_sig_size() and gssapi_{seal,unseal,sign,check}_packet() helper functions

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


- Log -----------------------------------------------------------------
commit 225d70154620d7029918cb9c549aec15d99c2de7
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Wed Jun 17 13:21:28 2015 +1200

    correct sense of macro variable name in SMB2 durable open test
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Wed Jun 24 08:54:23 CEST 2015 on sn-devel-104

commit 69e511e47876443a70357e02e9dbe3385f28f21d
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Wed Jun 17 13:20:29 2015 +1200

    Avoid casting pointer to unsigned long long for NULL check
    
    This allows compilation on i386 with -WError. Otherwise we see
    this:
    
      ../source4/torture/smb2/durable_open.c:41:23: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
           __location__, #v, (unsigned long long)v, (unsigned long long)correct); \
    
    because the pointer is 32 bits, while long long is 64.
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 8ed6523b6cf456d50cf4b127687aa0dcb43d88ba
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Wed Jun 17 16:08:18 2015 +1200

    Use large enough unsigned values in server_id IDL
    
    This matches what we have in struct server_id.
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 8a3d548ee70edf5770ba5a21a569311d662557a4
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Wed Jun 17 16:07:00 2015 +1200

    remove trailing whitespace in Pidl/Samba4/Python.pm
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 3c9f7957c94b8c84d03d7980cfed6ec8f7e8423b
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Wed Jun 17 11:37:03 2015 +1200

    Treat unsigned 64 bit IDL values as unsigned long long in Python
    
    This caused a compilation error on i386:
    
    default/librpc/gen_ndr/py_server_id.c:216:75: error: overflow in implicit constant conversion [-Werror=overflow]
      PyModule_AddObject(m, "SERVERID_UNIQUE_ID_NOT_TO_VERIFY", PyInt_FromLong(0xFFFFFFFFFFFFFFFFULL));
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit c3cf81324744737e9a9e8d8d7435d39bf95034f3
Author: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date:   Wed Jun 17 11:01:10 2015 +1200

    Byte order reversal shouldn't assume size_t is 64 bit.
    
    This fixes compilation on 32 bit i386 with -WError.
    
     ../lib/crypto/aes_gcm_128.c:213:2: error: right shift count >= width of type [-Werror]
     ../lib/crypto/aes_gcm_128.c:213:2: error: left shift count >= width of type [-Werror]
    
    Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

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

Summary of changes:
 lib/util/byteorder.h                 |  2 +-
 librpc/idl/server_id.idl             |  4 ++--
 pidl/lib/Parse/Pidl/Samba4/Python.pm | 34 +++++++++++++++++++---------------
 source4/torture/smb2/durable_open.c  | 15 +++++++++++----
 4 files changed, 33 insertions(+), 22 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/util/byteorder.h b/lib/util/byteorder.h
index 297be52..77afba5 100644
--- a/lib/util/byteorder.h
+++ b/lib/util/byteorder.h
@@ -164,7 +164,7 @@ static __inline__ void st_le32(uint32_t *addr, const uint32_t val)
 /* now the reverse routines - these are used in nmb packets (mostly) */
 #define SREV(x) ((((x)&0xFF)<<8) | (((x)>>8)&0xFF))
 #define IREV(x) ((SREV(x)<<16) | (SREV((x)>>16)))
-#define BREV(x) ((IREV(x)<<32) | (IREV((x)>>32)))
+#define BREV(x) ((IREV((uint64_t)x)<<32) | (IREV(((uint64_t)x)>>32)))
 
 #define RSVAL(buf,pos) SREV(SVAL(buf,pos))
 #define RSVALS(buf,pos) SREV(SVALS(buf,pos))
diff --git a/librpc/idl/server_id.idl b/librpc/idl/server_id.idl
index 554e428..8ebffc5 100644
--- a/librpc/idl/server_id.idl
+++ b/librpc/idl/server_id.idl
@@ -9,10 +9,10 @@ interface server_id
 	 * Ctdbd sets this, we retrieve our vnn from it.
 	 */
 
-	const int NONCLUSTER_VNN = 0xFFFFFFFF;
+	const uint32 NONCLUSTER_VNN = 0xFFFFFFFF;
 
 	/** Don't verify this unique id */
-	const int SERVERID_UNIQUE_ID_NOT_TO_VERIFY = 0xFFFFFFFFFFFFFFFFULL;
+	const hyper SERVERID_UNIQUE_ID_NOT_TO_VERIFY = 0xFFFFFFFFFFFFFFFFULL;
 
 	/* used to look like the following, note that unique_id was not
 	 * marshalled at all...
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index b0a7099..0f54944 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -112,7 +112,7 @@ sub EnumAndBitmapConsts($$$)
 	foreach my $e (@{$d->{ELEMENTS}}) {
 		$e =~ /^([A-Za-z0-9_]+)/;
 		my $cname = $1;
-		
+
 		$self->register_constant($cname, $d, $cname);
 	}
 }
@@ -221,7 +221,7 @@ sub PythonStruct($$$$$$)
 			my $mem_ctx = "pytalloc_get_mem_ctx(py_obj)";
 			my $l = $e->{LEVELS}[0];
 			my $nl = GetNextLevel($e, $l);
-			if ($l->{TYPE} eq "POINTER" and 
+			if ($l->{TYPE} eq "POINTER" and
 				not ($nl->{TYPE} eq "ARRAY" and ($nl->{IS_FIXED} or is_charset_array($e, $nl))) and
 				not ($nl->{TYPE} eq "DATA" and Parse::Pidl::Typelist::scalar_is_reference($nl->{DATA_TYPE}))) {
 				$self->pidl("talloc_unlink(pytalloc_get_mem_ctx(py_obj), discard_const($varname));");
@@ -255,7 +255,7 @@ sub PythonStruct($$$$$$)
 
 	my $py_methods = "NULL";
 
-	# If the struct is not public there ndr_pull/ndr_push functions will 
+	# If the struct is not public there ndr_pull/ndr_push functions will
 	# be static so not callable from here
 	if (has_property($d, "public")) {
 		$self->pidl("static PyObject *py_$name\_ndr_pack(PyObject *py_obj)");
@@ -405,8 +405,8 @@ sub find_metadata_args($)
 	foreach my $e (@{$fn->{ELEMENTS}}) {
 		foreach my $dir (@{$e->{DIRECTION}}) {
 			 my $main = get_metadata_var($e);
-			 if ($main) { 
-				 $metadata_args->{$dir}->{$main} = $e->{NAME}; 
+			 if ($main) {
+				 $metadata_args->{$dir}->{$main} = $e->{NAME};
 			 }
 		 }
 	}
@@ -432,7 +432,7 @@ sub PythonFunctionUnpackOut($$$)
 	$self->pidl("PyObject *result;");
 	foreach my $e (@{$fn->{ELEMENTS}}) {
 		next unless (grep(/out/,@{$e->{DIRECTION}}));
-		next if (($metadata_args->{in}->{$e->{NAME}} and grep(/in/, @{$e->{DIRECTION}})) or 
+		next if (($metadata_args->{in}->{$e->{NAME}} and grep(/in/, @{$e->{DIRECTION}})) or
 		         ($metadata_args->{out}->{$e->{NAME}}) and grep(/out/, @{$e->{DIRECTION}}));
 		$self->pidl("PyObject *py_$e->{NAME};");
 		$result_size++;
@@ -515,7 +515,7 @@ sub PythonFunctionPackIn($$$)
 
 	foreach my $e (@{$fn->{ELEMENTS}}) {
 		next unless (grep(/in/,@{$e->{DIRECTION}}));
-		next if (($metadata_args->{in}->{$e->{NAME}} and grep(/in/, @{$e->{DIRECTION}})) or 
+		next if (($metadata_args->{in}->{$e->{NAME}} and grep(/in/, @{$e->{DIRECTION}})) or
 				 ($metadata_args->{out}->{$e->{NAME}}) and grep(/out/, @{$e->{DIRECTION}}));
 		$self->pidl("PyObject *py_$e->{NAME};");
 		$args_format .= "O";
@@ -739,10 +739,10 @@ sub Interface($$$)
 		$self->pidl("return py_dcerpc_interface_init_helper(type, args, kwargs, &ndr_table_$interface->{NAME});");
 		$self->deindent;
 		$self->pidl("}");
-	
+
 		$self->pidl("");
 
-		my $signature = 
+		my $signature =
 "\"$interface->{NAME}(binding, lp_ctx=None, credentials=None) -> connection\\n\"
 \"\\n\"
 \"binding should be a DCE/RPC binding string (for example: ncacn_ip_tcp:127.0.0.1)\\n\"
@@ -876,7 +876,7 @@ sub import_type_variable($$$)
 sub use_type_variable($$)
 {
 	my ($self, $orig_ctype) = @_;
-	# FIXME: Have a global lookup table for types that look different on the 
+	# FIXME: Have a global lookup table for types that look different on the
 	# wire than they are named in C?
 	if ($orig_ctype->{NAME} eq "dom_sid2" or
 	    $orig_ctype->{NAME} eq "dom_sid28" or
@@ -1020,7 +1020,7 @@ sub ConvertObjectFromPythonData($$$$$$;$)
 		return;
 	}
 
-	if ($actual_ctype->{TYPE} eq "SCALAR" and 
+	if ($actual_ctype->{TYPE} eq "SCALAR" and
 		($actual_ctype->{NAME} eq "string" or $actual_ctype->{NAME} eq "nbt_string" or $actual_ctype->{NAME} eq "nbt_name" or $actual_ctype->{NAME} eq "wrepl_nbt_name")) {
 		$self->pidl("$target = talloc_strdup($mem_ctx, PyString_AS_STRING($cvar));");
 		return;
@@ -1199,10 +1199,14 @@ sub ConvertScalarToPython($$$)
 
 	$ctypename = expandAlias($ctypename);
 
-	if ($ctypename =~ /^(u?int64|hyper|dlong|udlong|udlongr|NTTIME_hyper|NTTIME|NTTIME_1sec)$/) {
+	if ($ctypename =~ /^(int64|dlong)$/) {
 		return "PyLong_FromLongLong($cvar)";
 	}
 
+	if ($ctypename =~ /^(uint64|hyper|udlong|udlongr|NTTIME_hyper|NTTIME|NTTIME_1sec)$/) {
+		return "PyLong_FromUnsignedLongLong($cvar)";
+	}
+
 	if ($ctypename =~ /^(char|u?int[0-9]*|time_t|uid_t|gid_t)$/) {
 		return "PyInt_FromLong($cvar)";
 	}
@@ -1255,8 +1259,8 @@ sub ConvertObjectToPythonData($$$$$;$)
 	my $actual_ctype = $ctype;
 	if ($actual_ctype->{TYPE} eq "TYPEDEF") {
 		$actual_ctype = $actual_ctype->{DATA};
-	} 
-	
+	}
+
 	if ($actual_ctype->{TYPE} eq "ENUM") {
 		return $self->ConvertScalarToPython(Parse::Pidl::Typelist::enum_type_fn($actual_ctype), $cvar);
 	} elsif ($actual_ctype->{TYPE} eq "BITMAP") {
@@ -1408,7 +1412,7 @@ sub Parse($$$$$)
 		($x->{TYPE} eq "IMPORT") && $self->Import(@{$x->{PATHS}});
 	    ($x->{TYPE} eq "INTERFACE") && $self->Interface($x, $basename);
 	}
-	
+
 	$self->pidl("static PyMethodDef $basename\_methods[] = {");
 	$self->indent;
 	foreach (@{$self->{module_methods}}) {
diff --git a/source4/torture/smb2/durable_open.c b/source4/torture/smb2/durable_open.c
index c3d63d1..fd6af33 100644
--- a/source4/torture/smb2/durable_open.c
+++ b/source4/torture/smb2/durable_open.c
@@ -35,10 +35,17 @@
 		ret = false; \
 	}} while (0)
 
-#define CHECK_NOT_VAL(v, correct) do { \
-	if ((v) == (correct)) { \
+#define CHECK_NOT_VAL(v, incorrect) do { \
+	if ((v) == (incorrect)) { \
 		torture_result(tctx, TORTURE_FAIL, "(%s): wrong value for %s got 0x%llx - should not be 0x%llx\n", \
-				__location__, #v, (unsigned long long)v, (unsigned long long)correct); \
+				__location__, #v, (unsigned long long)v, (unsigned long long)incorrect); \
+		ret = false; \
+	}} while (0)
+
+#define CHECK_NOT_NULL(p) do { \
+	if ((p) == NULL) { \
+		torture_result(tctx, TORTURE_FAIL, "(%s): %s is NULL but it should not be.\n", \
+				__location__, #p); \
 		ret = false; \
 	}} while (0)
 
@@ -2267,7 +2274,7 @@ static bool test_durable_open_alloc_size(struct torture_context *tctx,
 
 	/* prepare buffer */
 	b = talloc_zero_size(mem_ctx, alloc_size_step);
-	CHECK_NOT_VAL(b, NULL);
+	CHECK_NOT_NULL(b);
 
 	previous_session_id = smb2cli_session_current_id(tree->session->smbXcli);
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list