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

Karolin Seeger kseeger at samba.org
Thu Dec 3 11:07:21 UTC 2015


The branch, v4-3-stable has been updated
       via  c9f3095 VERSION: Disable git snapshot for the 4.3.2 release.
       via  78c8253 WHATSNEW: Add release notes for Samba 4.3.2.
       via  cbdf114 s3: smbd: have_file_open_below() fails to enumerate open files below an open directory handle.
       via  9e8785e selftest: add test for force user and well-known primary group
       via  225b8d6 auth: consistent handling of well-known alias as primary gid
       via  3e76e69 auth: remove a line that has no effect
       via  325d725 winbind: Don't crash on invalid idmap configs
       via  da97bd4 fix writev(vector[...]) points to uninitialised bytes in call_trans2findfirst
       via  e7e5539 fix 'Invalid read of size 1' in reply_search
       via  6860eb7 fix writev(vector[...]) points to uninitialised bytes in call_trans2findnext
       via  9d0bbc8 fix uninitialised read in process_host_announce
       via  d06e6f8 remove many valgrind errors for base.lock test
       via  af1fe52 nss_wins: Use lp_global_no_reinit()
       via  1f29432 s3: winbind: Prevent null ptr access by returning error if no creds available
       via  a373495 s3: rpcclient: Prevent null ptr access by returning error if no creds available
       via  136df8c s3: smbd: If EA's are turned off on a share don't allow an SMB2 create containing them.
       via  7dceba3 vfs_gpfs: Re-enable share modes
       via  3542761 texpect: undefined symbol rep_fprintf
       via  2aa391a Changing log level of two entries to DBG_NOTICE
       via  e70e7c1 lib: util: Make non-critical message a warning.
       via  88398fb s3:smb2_server: make the logic of SMB2_CANCEL DLIST_REMOVE() clearer
       via  f5faf95 s3-smbd: Fix use after issue in smbd_smb2_request_dispatch()
       via  c2b3914 manpage: corrected small typo error
       via  e63ff9f s4: fix linking smbtorture on Solaris.
       via  c900ae8 script/release.sh: make it possible to create stable .x releases (x >= 1)
       via  11310de script/release.sh: make it possible to create stable .0 releases
       via  b6530ac ctdb: open the RO tracking db with perms 0600 instead of 0000
       via  5cbbd24 selftest: Avoid system krb5.conf in "none" test env
       via  beece43 selftest: Avoid system krb5.conf in some test envs that don't use kerberos
       via  40c617b selftest: Avoid system krb5.conf in testenv provisioning
       via  3fb7397 auth: gensec: Parameters out_mem_ctx and ev are passed in the wrong order to gensec_spnego_server_try_fallback().
       via  374a288 async_req: fix non-blocking connect()
       via  536733f selftest: add a test for async_connect_send()
       via  5f1fb61 s3-torture: Remove (incorrect) samba3-specific behavior in samba3.raw.unlink now the server is correct
       via  4110956 s3-torture: Add WILDDELETE test to smbtorture3 to test old wildcard delete with zero attribute
       via  5945fee s3-smbd: Fix old DOS client doing wildcard delete - gives a attribute type of zero
       via  3abfde0 smbd: Send SMB2 oplock breaks unencrypted
       via  2d39d04 s4:lib/messaging: use correct path for names.tdb
       via  05e381f dcerpc.idl: accept invalid dcerpc_bind_nak pdus
       via  331cf24 VERSION: Bump version up to 4.3.2...
      from  6c37399 VERSION: Disable git snapshot for the 4.3.1 release.

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


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

Summary of changes:
 VERSION                                          |   2 +-
 WHATSNEW.txt                                     |  89 ++-
 auth/gensec/spnego.c                             |   2 +-
 ctdb/server/ctdb_ltdb_server.c                   |   2 +-
 docs-xml/smbdotconf/security/aclgroupcontrol.xml |   2 +-
 lib/async_req/async_connect_send_test.c          | 130 ++++
 lib/async_req/async_sock.c                       |  56 +-
 lib/async_req/wscript_build                      |   4 +
 lib/texpect/wscript                              |   2 +-
 lib/util/util.c                                  |   4 +-
 librpc/idl/dcerpc.idl                            |   6 +-
 librpc/ndr/ndr_dcerpc.c                          |  49 ++
 nsswitch/wins.c                                  |   2 +-
 script/release.sh                                | 741 +++++++++++++++++++++--
 selftest/selftest.pl                             |   5 +-
 selftest/target/Samba3.pm                        |  32 +-
 selftest/target/Samba4.pm                        |  34 +-
 source3/auth/auth_generic.c                      |   4 +-
 source3/auth/server_info.c                       |  25 +-
 source3/auth/user_krb5.c                         |   4 +-
 source3/locking/brlock.c                         |   2 +
 source3/modules/vfs_gpfs.c                       |   3 +-
 source3/nmbd/nmbd_incomingdgrams.c               |   2 +
 source3/rpcclient/cmd_netlogon.c                 |   5 +
 source3/script/tests/test_async_req.sh           |  11 +
 source3/script/tests/test_smbclient_auth.sh      |   1 +
 source3/selftest/tests.py                        |   5 +-
 source3/smbd/dir.c                               |  13 +-
 source3/smbd/reply.c                             |  12 +-
 source3/smbd/smb2_create.c                       |   6 +
 source3/smbd/smb2_server.c                       |  19 +-
 source3/smbd/trans2.c                            |  11 +-
 source3/torture/torture.c                        |  67 ++
 source3/winbindd/idmap.c                         |   1 +
 source3/winbindd/winbindd_pam.c                  |   7 +-
 source4/lib/messaging/messaging.c                |   8 +-
 source4/torture/local/nss_tests.c                |   4 +
 source4/torture/raw/unlink.c                     |   7 +-
 38 files changed, 1227 insertions(+), 152 deletions(-)
 create mode 100644 lib/async_req/async_connect_send_test.c
 create mode 100755 source3/script/tests/test_async_req.sh


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index 27e7e84..e732cb2 100644
--- a/VERSION
+++ b/VERSION
@@ -25,7 +25,7 @@
 ########################################################
 SAMBA_VERSION_MAJOR=4
 SAMBA_VERSION_MINOR=3
-SAMBA_VERSION_RELEASE=1
+SAMBA_VERSION_RELEASE=2
 
 ########################################################
 # If a official release has a serious bug              #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 5fee372..8e45f76 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,4 +1,89 @@
                    =============================
+                   Release Notes for Samba 4.3.2
+                         December 01, 2015
+                   =============================
+
+
+This is the latest stable release of Samba 4.3.
+
+
+Changes since 4.3.1:
+--------------------
+
+o   Michael Adam <obnox at samba.org>
+    * BUG 11577: ctdb: Open the RO tracking db with perms 0600 instead of 0000.
+
+o   Jeremy Allison <jra at samba.org>
+    * BUG 11452: s3-smbd: Fix old DOS client doing wildcard delete - gives an
+      attribute type of zero.
+    * BUG 11565: auth: gensec: Fix a memory leak.
+    * BUG 11566: lib: util: Make non-critical message a warning.
+    * BUG 11589: s3: smbd: If EAs are turned off on a share don't allow an SMB2
+      create containing them.
+    * BUG 11615: s3: smbd: have_file_open_below() fails to enumerate open files
+      below an open directory handle.
+
+o   Ralph Boehme <slow at samba.org>
+    * BUG 11562: s4:lib/messaging: Use correct path for names.tdb.
+    * BUG 11564: async_req: Fix non-blocking connect().
+
+o   Volker Lendecke <vl at samba.org>
+    * BUG 11243: vfs_gpfs: Re-enable share modes.
+    * BUG 11570: smbd: Send SMB2 oplock breaks unencrypted.
+    * BUG 11612: winbind: Fix crash on invalid idmap configs.
+
+o   YvanM <yvan.masson at openmailbox.org>
+    * BUG 11584: manpage: Correct small typo error.
+
+o   Stefan Metzmacher <metze at samba.org>
+    * BUG 11327: dcerpc.idl: Accept invalid dcerpc_bind_nak pdus.
+    * BUG 11581: s3:smb2_server: Make the logic of SMB2_CANCEL DLIST_REMOVE()
+      clearer.
+
+o   Marc Muehlfeld <mmuehlfeld at samba.org>
+    * BUG 9912: Changing log level of two entries to DBG_NOTICE.
+    * BUG 11581: s3-smbd: Fix use after issue in smbd_smb2_request_dispatch().
+
+o   Noel Power <noel.power at suse.com>
+    * BUG 11569: Fix winbindd crashes with samlogon for trusted domain user.
+    * BUG 11597: Backport some valgrind fixes from upstream master.
+
+o   Andreas Schneider <asn at samba.org
+    * BUG 11563: Fix segfault of 'net ads (join|leave) -S INVALID' with
+      nss_wins.
+
+o   Tom Schulz <schulz at adi.com>
+    * BUG 11511: Add libreplace dependency to texpect, fixes a linking error on
+      Solaris.
+    * BUG 11512: s4: Fix linking of 'smbtorture' on Solaris.
+
+o   Uri Simchoni <uri at samba.org>
+    * BUG 11608: auth: Consistent handling of well-known alias as primary gid.
+
+#######################################
+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
+======================================================================
+
+
+Older release notes to follow:
+------------------------------
+
+                   =============================
                    Release Notes for Samba 4.3.1
                          October 20, 2015
                    =============================
@@ -78,8 +163,8 @@ database (https://bugzilla.samba.org/).
 ======================================================================
 
 
-Older release notes to follow:
-------------------------------
+----------------------------------------------------------------------
+
 
                    =============================
                    Release Notes for Samba 4.3.0
diff --git a/auth/gensec/spnego.c b/auth/gensec/spnego.c
index 85c70e1..fe2ec43 100644
--- a/auth/gensec/spnego.c
+++ b/auth/gensec/spnego.c
@@ -738,7 +738,7 @@ static NTSTATUS gensec_spnego_update(struct gensec_security *gensec_security, TA
 			len = spnego_read_data(gensec_security, in, &spnego);
 			if (len == -1) {
 				return gensec_spnego_server_try_fallback(gensec_security, spnego_state,
-									 out_mem_ctx, ev, in, out);
+									 ev, out_mem_ctx, in, out);
 			}
 			/* client sent NegTargetInit, we send NegTokenTarg */
 
diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c
index 5357c6c..19dbb00 100644
--- a/ctdb/server/ctdb_ltdb_server.c
+++ b/ctdb/server/ctdb_ltdb_server.c
@@ -718,7 +718,7 @@ int ctdb_set_db_readonly(struct ctdb_context *ctdb, struct ctdb_db_context *ctdb
 	ctdb_db->rottdb = tdb_open(ropath, 
 			      ctdb->tunable.database_hash_size, 
 			      TDB_NOLOCK|TDB_CLEAR_IF_FIRST|TDB_NOSYNC,
-			      O_CREAT|O_RDWR, 0);
+			      O_CREAT|O_RDWR, 0600);
 	if (ctdb_db->rottdb == NULL) {
 		DEBUG(DEBUG_CRIT,("Failed to open/create the tracking database '%s'\n", ropath));
 		talloc_free(ropath);
diff --git a/docs-xml/smbdotconf/security/aclgroupcontrol.xml b/docs-xml/smbdotconf/security/aclgroupcontrol.xml
index 279a57b..fbc4c7d 100644
--- a/docs-xml/smbdotconf/security/aclgroupcontrol.xml
+++ b/docs-xml/smbdotconf/security/aclgroupcontrol.xml
@@ -30,7 +30,7 @@
 	</para>
 
 	<para>
-	This is parameter has been was deprecated in Samba 3.0.23, but re-activated in
+	This parameter was deprecated in Samba 3.0.23, but re-activated in
 	Samba 3.0.31 and above, as it now only controls permission changes if the user
 	is in the owning primary group. It is now no longer equivalent to the
 	<parameter moreinfo="none">dos filemode</parameter> option.
diff --git a/lib/async_req/async_connect_send_test.c b/lib/async_req/async_connect_send_test.c
new file mode 100644
index 0000000..34ea6b7
--- /dev/null
+++ b/lib/async_req/async_connect_send_test.c
@@ -0,0 +1,130 @@
+/*
+ * Test async connect
+ * Copyright (C) Ralph Boehme 2015
+ *
+ * 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 "replace.h"
+#include "lib/tevent/tevent.h"
+#include "lib/async_req/async_sock.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+int main(int argc, const char *argv[])
+{
+	int result, listen_sock, status, exit_status;
+	uint16_t port;
+	struct sockaddr_in addr = { 0 };
+	pid_t pid;
+
+	listen_sock = socket(PF_INET, SOCK_STREAM, 0);
+	if (listen_sock == -1) {
+		perror("socket() failed");
+		exit(1);
+	}
+
+	addr.sin_family = AF_INET;
+	addr.sin_addr.s_addr = inet_addr("127.0.0.1");
+
+	for (port = 1024; port < UINT16_MAX; port++) {
+		addr.sin_port = htons(port);
+		result = bind(listen_sock, (struct sockaddr *)&addr, sizeof(addr));
+		if (result == 0) {
+			break;
+		}
+	}
+
+	if (port == UINT16_MAX) {
+		printf("Huh, no free port?\n");
+		return 1;
+	}
+
+	result = listen(listen_sock, 1);
+	if (result == -1) {
+		perror("listen() failed");
+		close(listen_sock);
+		return 1;
+	}
+
+	pid = fork();
+	if (pid == -1) {
+		perror("fork");
+		return 1;
+	}
+
+	if (pid == 0) {
+		struct tevent_context *ev;
+		struct tevent_req *req;
+		int fd;
+
+		ev = tevent_context_init(NULL);
+		if (ev == NULL) {
+			fprintf(stderr, "tevent_context_init failed\n");
+			return 1;
+		}
+
+		fd = socket(PF_INET, SOCK_STREAM, 0);
+		if (fd == -1) {
+			perror("socket");
+			return 1;
+		}
+
+		memset(&addr, 0, sizeof(addr));
+		addr.sin_family = AF_INET;
+		addr.sin_port = htons(port);
+		addr.sin_addr.s_addr = inet_addr("127.0.0.1");
+
+		req = async_connect_send(ev, ev, fd,
+					 (struct sockaddr *)&addr,
+					 sizeof(struct sockaddr_in),
+					 NULL, NULL, NULL);
+
+		if (!tevent_req_poll(req, ev)) {
+			perror("tevent_req_poll() failed");
+			return 1;
+		}
+
+		status = 0;
+		result = async_connect_recv(req, &status);
+		if (result != 0) {
+			return status;
+		}
+		return 0;
+	}
+
+	result = waitpid(pid, &status, 0);
+	if (result == -1) {
+		perror("waitpid");
+		return 1;
+	}
+
+	if (!WIFEXITED(status)) {
+		printf("child status: %d\n", status);
+		return 2;
+	}
+
+	exit_status = WEXITSTATUS(status);
+	printf("test done: status=%d\n", exit_status);
+
+	if (exit_status != 0) {
+		return exit_status;
+	}
+
+	return 0;
+}
diff --git a/lib/async_req/async_sock.c b/lib/async_req/async_sock.c
index bc3780c..c0ad8f3 100644
--- a/lib/async_req/async_sock.c
+++ b/lib/async_req/async_sock.c
@@ -127,24 +127,17 @@ struct tevent_req *async_connect_send(
 		return tevent_req_post(req, ev);
 	}
 
-	/**
-	 * A number of error messages show that something good is progressing
-	 * and that we have to wait for readability.
-	 *
-	 * If none of them are present, bail out.
+	/*
+	 * The only errno indicating that the connect is still in
+	 * flight is EINPROGRESS, everything else is an error
 	 */
 
-	if (!(errno == EINPROGRESS || errno == EALREADY ||
-#ifdef EISCONN
-	      errno == EISCONN ||
-#endif
-	      errno == EAGAIN || errno == EINTR)) {
+	if (errno != EINPROGRESS) {
 		tevent_req_error(req, errno);
 		return tevent_req_post(req, ev);
 	}
 
-	state->fde = tevent_add_fd(ev, state, fd,
-				   TEVENT_FD_READ | TEVENT_FD_WRITE,
+	state->fde = tevent_add_fd(ev, state, fd, TEVENT_FD_WRITE,
 				   async_connect_connected, req);
 	if (state->fde == NULL) {
 		tevent_req_error(req, ENOMEM);
@@ -189,27 +182,32 @@ static void async_connect_connected(struct tevent_context *ev,
 	struct async_connect_state *state =
 		tevent_req_data(req, struct async_connect_state);
 	int ret;
-
-	if (state->before_connect != NULL) {
-		state->before_connect(state->private_data);
-	}
-
-	ret = connect(state->fd, (struct sockaddr *)(void *)&state->address,
-		      state->address_len);
-
-	if (state->after_connect != NULL) {
-		state->after_connect(state->private_data);
-	}
-
-	if (ret == 0) {
-		tevent_req_done(req);
+	int socket_error = 0;
+	socklen_t slen = sizeof(socket_error);
+
+	ret = getsockopt(state->fd, SOL_SOCKET, SO_ERROR,
+			 &socket_error, &slen);
+
+	if (ret != 0) {
+		/*
+		 * According to Stevens this is the Solaris behaviour
+		 * in case the connection encountered an error:
+		 * getsockopt() fails, error is in errno
+		 */
+		tevent_req_error(req, errno);
 		return;
 	}
-	if (errno == EINPROGRESS) {
-		/* Try again later, leave the fde around */
+
+	if (socket_error != 0) {
+		/*
+		 * Berkeley derived implementations (including) Linux
+		 * return the pending error via socket_error.
+		 */
+		tevent_req_error(req, socket_error);
 		return;
 	}
-	tevent_req_error(req, errno);
+
+	tevent_req_done(req);
 	return;
 }
 
diff --git a/lib/async_req/wscript_build b/lib/async_req/wscript_build
index e8af569..9c25223 100644
--- a/lib/async_req/wscript_build
+++ b/lib/async_req/wscript_build
@@ -7,3 +7,7 @@ bld.SAMBA_SUBSYSTEM('LIBASYNC_REQ',
 	deps='tevent-util socket-blocking'
 	)
 
+bld.SAMBA_BINARY('async_connect_send_test',
+                 source='async_connect_send_test.c',
+                 deps='LIBASYNC_REQ'
+)
diff --git a/lib/texpect/wscript b/lib/texpect/wscript
index 62a1d4d..e14c048 100644
--- a/lib/texpect/wscript
+++ b/lib/texpect/wscript
@@ -4,4 +4,4 @@ def configure(conf):
     conf.CHECK_FUNCS_IN('openpty', 'util', checklibc=True, headers='pty.h util.h bsd/libutil.h libutil.h')
 
 def build(bld):
-    bld.SAMBA_BINARY('texpect', 'texpect.c', deps='popt util', install=False)
+    bld.SAMBA_BINARY('texpect', 'texpect.c', deps='popt util replace', install=False)
diff --git a/lib/util/util.c b/lib/util/util.c
index 393d83d..d8a84da 100644
--- a/lib/util/util.c
+++ b/lib/util/util.c
@@ -275,8 +275,8 @@ _PUBLIC_ bool directory_create_or_exist_strict(const char *dname,
 		return false;
 	}
 	if (st.st_uid != uid && !uid_wrapper_enabled()) {
-		DEBUG(0, ("invalid ownership on directory "
-			  "%s\n", dname));
+		DBG_NOTICE("invalid ownership on directory "
+			  "%s\n", dname);
 		return false;
 	}
 	if ((st.st_mode & 0777) != dir_perms) {
diff --git a/librpc/idl/dcerpc.idl b/librpc/idl/dcerpc.idl
index 63be48e..1036693 100644
--- a/librpc/idl/dcerpc.idl
+++ b/librpc/idl/dcerpc.idl
@@ -114,7 +114,7 @@ interface dcerpc
 		[flag(NDR_REMAINING)] DATA_BLOB auth_info;
 	} dcerpc_bind_ack;
 
-	typedef [enum16bit] enum {
+	typedef [public,enum16bit] enum {
 		DCERPC_BIND_NAK_REASON_NOT_SPECIFIED                  = 0,
 		DCERPC_BIND_NAK_REASON_TEMPORARY_CONGESTION           = 1,
 		DCERPC_BIND_NAK_REASON_LOCAL_LIMIT_EXCEEDED           = 2,
@@ -128,12 +128,12 @@ interface dcerpc
 	const int DCERPC_BIND_REASON_INVALID_AUTH_TYPE =
 		DCERPC_BIND_NAK_REASON_INVALID_AUTH_TYPE;
 
-	typedef struct {
+	typedef [public] struct {
 		uint8 rpc_vers;         /* RPC version */
 		uint8 rpc_vers_minor;   /* Minor version */
 	} dcerpc_bind_nak_version;
 
-	typedef struct {
+	typedef [public,nopull] struct {
 		dcerpc_bind_nak_reason reject_reason;
 		uint8 num_versions;
 		dcerpc_bind_nak_version versions[num_versions];
diff --git a/librpc/ndr/ndr_dcerpc.c b/librpc/ndr/ndr_dcerpc.c
index ca09fb6..0224b2c 100644
--- a/librpc/ndr/ndr_dcerpc.c
+++ b/librpc/ndr/ndr_dcerpc.c
@@ -24,6 +24,55 @@
 #include "librpc/gen_ndr/ndr_dcerpc.h"
 #include "librpc/gen_ndr/ndr_misc.h"
 
+/*
+ * This function was generated by pidl and
+ * has been extended by the (_available == 0) check.
+ *
+ * That's why we ignore the 80 char per line limit.
+ */
+enum ndr_err_code ndr_pull_dcerpc_bind_nak(struct ndr_pull *ndr, int ndr_flags, struct dcerpc_bind_nak *r)
+{
+	uint32_t size_versions_0 = 0;
+	uint32_t cntr_versions_0;
+	TALLOC_CTX *_mem_save_versions_0 = NULL;
+	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+	if (ndr_flags & NDR_SCALARS) {
+		uint32_t _available;
+		NDR_CHECK(ndr_pull_align(ndr, 4));
+		NDR_CHECK(ndr_pull_dcerpc_bind_nak_reason(ndr, NDR_SCALARS, &r->reject_reason));
+		_available = ndr->data_size - ndr->offset;
+		if (_available == 0) {
+			/*
+			 * This works around a bug in older
+			 * Samba (<= 4.1) releases.
+			 *
+			 * See bug #11327.
+			 */
+			r->num_versions = 0;
+		} else {
+			NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_versions));
+		}
+		size_versions_0 = r->num_versions;
+		NDR_PULL_ALLOC_N(ndr, r->versions, size_versions_0);
+		_mem_save_versions_0 = NDR_PULL_GET_MEM_CTX(ndr);
+		NDR_PULL_SET_MEM_CTX(ndr, r->versions, 0);
+		for (cntr_versions_0 = 0; cntr_versions_0 < (size_versions_0); cntr_versions_0++) {
+			NDR_CHECK(ndr_pull_dcerpc_bind_nak_version(ndr, NDR_SCALARS, &r->versions[cntr_versions_0]));
+		}
+		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_versions_0, 0);
+		{
+			uint32_t _flags_save_DATA_BLOB = ndr->flags;
+			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
+			NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
+			ndr->flags = _flags_save_DATA_BLOB;
+		}
+		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
+	}
+	if (ndr_flags & NDR_BUFFERS) {
+	}
+	return NDR_ERR_SUCCESS;
+}
+
 const uint8_t DCERPC_SEC_VT_MAGIC[] = {0x8a,0xe3,0x13,0x71,0x02,0xf4,0x36,0x71};


-- 
Samba Shared Repository



More information about the samba-cvs mailing list