[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Tue Mar 9 23:46:01 UTC 2021


The branch, master has been updated
       via  26bc731212b winbindd: Apply some const to normalize_name_map()
       via  f815ad9bb80 smbd: Fix a DEBUG message
       via  b5705cc70ce srvsrvc: Reload conf after changing a share
       via  81d01a1addb lib: Fix file_ploadv_send/recv cleanup
       via  023f68cb761 g_lock: Add extensive debug information
       via  c74213830d4 librpc: Simplify struct dcesrv_handle
       via  833fcdc0246 libcli: Simplify tstream_npa_connect_readv_done()
       via  9d656edffb9 libcli: Add a NULL check to tstream_npa
       via  bcbfae42795 lib: Fix samba_sockaddr_[get|set]_port
       via  da906fbc87f lib: Protect "messaging_dgm_init()" from NULL dirs
       via  559b4df1431 rpc_server: Use any_nt_status_not_ok() in srv_netlog_nt.c
       via  3e58a4d9d75 rpc_server: Use direct struct initialization instead of ZERO_STRUCT
       via  a53cc3adc6c epmapper: talloc_stackframe() panics on failure
       via  3a7f099b6bc rpc_server: talloc_stackframe() panics on failure
       via  49efd6113b6 rpc_client: Save a few lines with direct struct initialization
       via  e0ce7169348 rpcclient: talloc_stackframe() panics on failure
       via  9db63646c7a lib: Align integer types
       via  4f83814d443 lib: Avoid a cast in messages_dgm
       via  723a4648dd2 lib: Avoid a memleak in pidfile_unlink()
       via  4b8dc750851 lib: Avoid ZERO_STRUCT in pidfile_pid()
       via  15dad4dba85 lib: Make socket options output less chatty
       via  2fc974fdfa7 lib: Fix an uninitialized variable read
       via  dead4d05aba librpc: Fix typos
       via  ce9df5080d1 smbd: Fix a typo (recieve->receive), reformat comment
       via  b1ba5d58727 librpc: Fix a typo, while there linewrap the comment
       via  dd56d415b15 rpc_server: Fix a typo
       via  8d4f0242658 winbindd: Fix a typo
       via  72cc8dce4c9 lib: Fix a typo
       via  409da523a71 rpc_client: Fix a typo
       via  dab793469f9 lib: Fix a typo
       via  06b740e2fb4 ctdb: Fix a typo
       via  ca1f67406f9 rpc_server: Align integer types
       via  6d1049796fe rpc_server: Fix a typo
       via  1ea49c426cc samba: Fix indentation
      from  77f96a3079e samba-tool: Add a gpo command for setting VGP Issue Group Policy

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


- Log -----------------------------------------------------------------
commit 26bc731212ba9be439757b5084492d01354b54e0
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Feb 23 16:27:44 2021 +0100

    winbindd: Apply some const to normalize_name_map()
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Tue Mar  9 23:45:51 UTC 2021 on sn-devel-184

commit f815ad9bb807be3baa8265362be5ef8f4a56a25e
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Mar 5 11:36:20 2021 +0100

    smbd: Fix a DEBUG message
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit b5705cc70ce26c6ebd86abed15c0ffd8573bf84e
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Mar 9 08:50:26 2021 +0100

    srvsrvc: Reload conf after changing a share
    
    The call to messaging_send_all() skips ourselves. This is tested in
    source3/script/tests/test_rpcclientsrvsvc.sh, which right now we only
    survive because the rpcclient call spawns a new smbd, which reloads
    smb.conf. Once you start running srvsvcd in a long-running daemon,
    this fails.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 81d01a1addb52100d6de7eb89dbc6b161a8c6c22
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Feb 13 11:40:34 2021 +0100

    lib: Fix file_ploadv_send/recv cleanup
    
    We have to first TALLOC_FREE() the waiting event before closing the
    pipe. Otherwise EPOLL_CTL_DEL is unhappy and might remove an unrelated
    file descriptor.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 023f68cb761de2d3b9dcd587f6de906c5909ea8e
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Feb 4 18:46:59 2021 +0100

    g_lock: Add extensive debug information
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit c74213830d498fde113a59f77e49bf7a6f679949
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Jan 27 14:59:16 2021 +0100

    librpc: Simplify struct dcesrv_handle
    
    This saves a tiny bit of memory: dom_sid_dup() allocates a full struct
    dom_sid, although it might not have to. Save the additional talloc
    object and the pointer, be more cache-friendly
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 833fcdc02467f20dfec3b1e220f8b8db60a7fb5c
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Feb 16 17:21:57 2021 +0100

    libcli: Simplify tstream_npa_connect_readv_done()
    
    tevent_req_error takes care of the ==0 case
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 9d656edffb94027475fd91c6a3a875c37a268b34
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Feb 16 17:21:33 2021 +0100

    libcli: Add a NULL check to tstream_npa
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit bcbfae42795f4dadb35a8f59a0165467708c3e71
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Feb 13 11:16:17 2021 +0100

    lib: Fix samba_sockaddr_[get|set]_port
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit da906fbc87fce50a21a65d3e5bcc1ccd7ab3323e
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Mar 6 15:49:46 2021 +0100

    lib: Protect "messaging_dgm_init()" from NULL dirs
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 559b4df143159d5effffd5de4be291b34bb8ed2a
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Feb 24 16:01:27 2021 +0100

    rpc_server: Use any_nt_status_not_ok() in srv_netlog_nt.c
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 3e58a4d9d75253fb1d01d2477e10b825da658025
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Feb 24 15:49:49 2021 +0100

    rpc_server: Use direct struct initialization instead of ZERO_STRUCT
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit a53cc3adc6cc8006535779f559cd8e2736da8b41
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jan 26 14:17:02 2021 +0100

    epmapper: talloc_stackframe() panics on failure
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 3a7f099b6bc97d849aef701c5eaddf842d77284d
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Feb 5 08:06:57 2021 +0100

    rpc_server: talloc_stackframe() panics on failure
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 49efd6113b6e30ccc66d202d54b562055efe6d45
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Feb 6 08:32:36 2021 +0100

    rpc_client: Save a few lines with direct struct initialization
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit e0ce71693488918edaeb167a0e1db107dcadb458
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Feb 6 15:56:52 2021 +0100

    rpcclient: talloc_stackframe() panics on failure
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 9db63646c7acae3e6650b6f9994281e28b8e7c4e
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Feb 12 19:17:34 2021 +0100

    lib: Align integer types
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 4f83814d443faf11d021a82a9fc00287c408880f
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Feb 14 09:15:15 2021 +0100

    lib: Avoid a cast in messages_dgm
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 723a4648dd2885a8bef92673012f72997f103f56
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Feb 13 22:19:42 2021 +0100

    lib: Avoid a memleak in pidfile_unlink()
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 4b8dc75085129346d67efe5e6718961699f297c7
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Feb 13 22:19:12 2021 +0100

    lib: Avoid ZERO_STRUCT in pidfile_pid()
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 15dad4dba8581d8c4acc635c1f654cf15295a5e0
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Feb 13 12:49:57 2021 +0100

    lib: Make socket options output less chatty
    
    All the socket options were a large block in debug output. Put them on
    one line.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 2fc974fdfa75e89206a8c3537cbb2060e7c216b2
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Feb 11 08:03:38 2021 +0100

    lib: Fix an uninitialized variable read
    
    If cli_rpc_pipe_open_noauth() fails, we end up in TALLOC_FREE() of
    "p", which is uninitialized.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit dead4d05aba6be4d99e71d615675642dff2d5d6d
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Jan 29 10:13:13 2021 +0100

    librpc: Fix typos
    
    While there, wrap the long comment lines
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit ce9df5080d12c38d69e269a1434cd4c6838264a0
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Feb 12 12:49:22 2021 +0100

    smbd: Fix a typo (recieve->receive), reformat comment
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit b1ba5d58727eff385eb2d3a570a655376b441ee6
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Jan 27 14:53:15 2021 +0100

    librpc: Fix a typo, while there linewrap the comment
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit dd56d415b15b5a65b07573de4a291a13c7f79868
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Feb 24 13:33:58 2021 +0100

    rpc_server: Fix a typo
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 8d4f02426580f64bcfebb2216f5e81810b914e76
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Feb 22 19:32:00 2021 +0100

    winbindd: Fix a typo
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 72cc8dce4c9f592b3e28dce36f611b0093da62ce
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Feb 24 21:30:59 2021 +0100

    lib: Fix a typo
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 409da523a71573c03cc963589c9d3ff57f6b17da
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Feb 26 21:38:19 2021 +0100

    rpc_client: Fix a typo
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit dab793469f9bfa8f1701162dbd7f3b28830117fb
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Mar 1 13:36:45 2021 +0100

    lib: Fix a typo
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 06b740e2fb4348331c11dffaa77a4b37e716d2c4
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 3 09:58:50 2021 +0100

    ctdb: Fix a typo
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit ca1f67406f9b7ae873400201cca6eb535df9243a
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Feb 24 13:33:44 2021 +0100

    rpc_server: Align integer types
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 6d1049796fe95374a17ce2b8a77ee67d9dda4874
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Mar 7 09:57:05 2021 +0100

    rpc_server: Fix a typo
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 1ea49c426cc3b7a9dec97da41dc9b8b93a87f4e9
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Mar 7 10:11:09 2021 +0100

    samba: Fix indentation
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

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

Summary of changes:
 ctdb/server/ctdb_recover.c                  |  2 +-
 lib/messaging/messages_dgm.c                |  6 ++-
 lib/util/pidfile.c                          | 13 ++---
 lib/util/tests/strv_util.c                  |  5 +-
 lib/util/util_net.c                         | 62 ++++++++++++++--------
 libcli/named_pipe_auth/npa_tstream.c        |  6 ++-
 librpc/rpc/dcesrv_core.h                    |  5 +-
 librpc/rpc/dcesrv_handles.c                 | 16 +++---
 source3/lib/g_lock.c                        | 33 ++++++++++--
 source3/lib/popt_common.c                   |  2 +-
 source3/lib/util_file.c                     | 35 ++++++++-----
 source3/lib/util_sd.c                       |  2 +-
 source3/lib/util_sock.c                     |  2 +-
 source3/rpc_client/cli_lsarpc.c             | 23 ++-------
 source3/rpc_client/cli_pipe.c               |  2 +-
 source3/rpc_server/epmapper/srv_epmapper.c  |  3 --
 source3/rpc_server/netlogon/srv_netlog_nt.c | 80 +++++++----------------------
 source3/rpc_server/srvsvc/srv_srvsvc_nt.c   |  2 +
 source3/rpcclient/rpcclient.c               |  9 +---
 source3/smbd/files.c                        |  2 +-
 source3/smbd/server.c                       |  7 ++-
 source3/winbindd/winbindd_proto.h           |  2 +-
 source3/winbindd/winbindd_util.c            |  4 +-
 source4/samba/server.c                      |  2 +-
 24 files changed, 159 insertions(+), 166 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/server/ctdb_recover.c b/ctdb/server/ctdb_recover.c
index 108d8bb404b..c59b4ad20ec 100644
--- a/ctdb/server/ctdb_recover.c
+++ b/ctdb/server/ctdb_recover.c
@@ -183,7 +183,7 @@ ctdb_control_reload_nodes_file(struct ctdb_context *ctdb, uint32_t opcode)
 		}
 	}
 
-	/* tell the recovery daemon to reaload the nodes file too */
+	/* tell the recovery daemon to reload the nodes file too */
 	ctdb_daemon_send_message(ctdb, ctdb->pnn, CTDB_SRVID_RELOAD_NODES, tdb_null);
 
 	talloc_free(tmp_ctx);
diff --git a/lib/messaging/messages_dgm.c b/lib/messaging/messages_dgm.c
index 7c9dd8eb42f..733cd19d3b8 100644
--- a/lib/messaging/messages_dgm.c
+++ b/lib/messaging/messages_dgm.c
@@ -939,7 +939,7 @@ static int messaging_dgm_lockfile_create(struct messaging_dgm_context *ctx,
 		generate_random_buffer((uint8_t *)&unique, sizeof(unique));
 	} while (unique == UINT64_C(0xFFFFFFFFFFFFFFFF));
 
-	unique_len = snprintf(buf, sizeof(buf), "%ju\n", (uintmax_t)unique);
+	unique_len = snprintf(buf, sizeof(buf), "%"PRIu64"\n", unique);
 
 	/* shorten a potentially preexisting file */
 
@@ -1002,6 +1002,10 @@ int messaging_dgm_init(struct tevent_context *ev,
 		return EEXIST;
 	}
 
+	if ((socket_dir == NULL) || (lockfile_dir == NULL)) {
+		return EINVAL;
+	}
+
 	ctx = talloc_zero(NULL, struct messaging_dgm_context);
 	if (ctx == NULL) {
 		goto fail_nomem;
diff --git a/lib/util/pidfile.c b/lib/util/pidfile.c
index b90ff12a8c7..b7daa089223 100644
--- a/lib/util/pidfile.c
+++ b/lib/util/pidfile.c
@@ -134,7 +134,7 @@ pid_t pidfile_pid(const char *piddir, const char *name)
 	size_t len = strlen(piddir) + strlen(name) + 6;
 	char pidFile[len];
 	int fd;
-	char pidstr[20];
+	char pidstr[20] = { 0, };
 	pid_t ret = -1;
 
 	snprintf(pidFile, sizeof(pidFile), "%s/%s.pid", piddir, name);
@@ -145,8 +145,6 @@ pid_t pidfile_pid(const char *piddir, const char *name)
 		return 0;
 	}
 
-	ZERO_STRUCT(pidstr);
-
 	if (read(fd, pidstr, sizeof(pidstr)-1) <= 0) {
 		goto noproc;
 	}
@@ -210,13 +208,12 @@ void pidfile_create(const char *piddir, const char *name)
 
 void pidfile_unlink(const char *piddir, const char *name)
 {
+	size_t len = strlen(piddir) + strlen(name) + 6;
+	char pidFile[len];
 	int ret;
-	char *pidFile = NULL;
 
-	if (asprintf(&pidFile, "%s/%s.pid", piddir, name) < 0) {
-		DEBUG(0,("ERROR: Out of memory\n"));
-		exit(1);
-	}
+	snprintf(pidFile, sizeof(pidFile), "%s/%s.pid", piddir, name);
+
 	ret = unlink(pidFile);
 	if (ret == -1) {
 		DEBUG(0,("Failed to delete pidfile %s. Error was %s\n",
diff --git a/lib/util/tests/strv_util.c b/lib/util/tests/strv_util.c
index 3dd93d2eb46..b1496c74384 100644
--- a/lib/util/tests/strv_util.c
+++ b/lib/util/tests/strv_util.c
@@ -106,10 +106,11 @@ static bool test_strv_split_some(struct torture_context *tctx)
 	};
 	const char *t;
 	char *strv = NULL;
-	int j;
+	size_t j;
 
 	for (j = 0; j < ARRAY_SIZE(data); j++) {
-		int i, num, ret;
+		size_t i, num;
+		int ret;
 		const struct test_str_split_data *d = &data[j];
 
 		num = 0;
diff --git a/lib/util/util_net.c b/lib/util/util_net.c
index f97d4d43f3c..fe474dc16be 100644
--- a/lib/util/util_net.c
+++ b/lib/util/util_net.c
@@ -979,26 +979,48 @@ static const smb_socket_option socket_options[] = {
 
 static void print_socket_options(int s)
 {
-	int value;
-	socklen_t vlen = 4;
+	TALLOC_CTX *frame = NULL;
 	const smb_socket_option *p = &socket_options[0];
+	char *str = NULL;
 
-	/* wrapped in if statement to prevent streams
-	 * leak in SCO Openserver 5.0 */
-	/* reported on samba-technical  --jerry */
-	if ( DEBUGLEVEL >= 5 ) {
-		DEBUG(5,("Socket options:\n"));
-		for (; p->name != NULL; p++) {
-			if (getsockopt(s, p->level, p->option,
-						(void *)&value, &vlen) == -1) {
-				DEBUGADD(5,("\tCould not test socket option %s.\n",
-							p->name));
-			} else {
-				DEBUGADD(5,("\t%s = %d\n",
-							p->name,value));
-			}
+	if (DEBUGLEVEL < 5) {
+		return;
+	}
+
+	frame = talloc_stackframe();
+
+	str = talloc_strdup(frame, "");
+	if (str == NULL) {
+		DBG_WARNING("talloc failed\n");
+		goto done;
+	}
+
+	for (; p->name != NULL; p++) {
+		int ret, val;
+		socklen_t vlen = sizeof(val);
+
+		ret = getsockopt(s, p->level, p->option, (void *)&val, &vlen);
+		if (ret == -1) {
+			DBG_INFO("Could not test socket option %s: %s.\n",
+				 p->name, strerror(errno));
+			continue;
+		}
+
+		str = talloc_asprintf_append_buffer(
+			str,
+			"%s%s=%d",
+			str[0] != '\0' ? ", " : "",
+			p->name,
+			val);
+		if (str == NULL) {
+			DBG_WARNING("talloc_asprintf_append_buffer failed\n");
+			goto done;
 		}
 	}
+
+	DEBUG(5, ("socket options: %s\n", str));
+done:
+	TALLOC_FREE(frame);
  }
 
 /****************************************************************************
@@ -1095,12 +1117,12 @@ bool sockaddr_storage_to_samba_sockaddr(
 bool samba_sockaddr_set_port(struct samba_sockaddr *sa, uint16_t port)
 {
 	if (sa->u.sa.sa_family == AF_INET) {
-		sa->u.in.sin_port = port;
+		sa->u.in.sin_port = htons(port);
 		return true;
 	}
 #ifdef HAVE_IPV6
 	if (sa->u.sa.sa_family == AF_INET6) {
-		sa->u.in6.sin6_port = port;
+		sa->u.in6.sin6_port = htons(port);
 		return true;
 	}
 #endif
@@ -1110,12 +1132,12 @@ bool samba_sockaddr_set_port(struct samba_sockaddr *sa, uint16_t port)
 bool samba_sockaddr_get_port(const struct samba_sockaddr *sa, uint16_t *port)
 {
 	if (sa->u.sa.sa_family == AF_INET) {
-		*port = sa->u.in.sin_port;
+		*port = ntohs(sa->u.in.sin_port);
 		return true;
 	}
 #ifdef HAVE_IPV6
 	if (sa->u.sa.sa_family == AF_INET6) {
-		*port = sa->u.in6.sin6_port;
+		*port = ntohs(sa->u.in6.sin6_port);
 		return true;
 	}
 #endif
diff --git a/libcli/named_pipe_auth/npa_tstream.c b/libcli/named_pipe_auth/npa_tstream.c
index bc9d1ecb187..8c07f2e76f9 100644
--- a/libcli/named_pipe_auth/npa_tstream.c
+++ b/libcli/named_pipe_auth/npa_tstream.c
@@ -233,6 +233,9 @@ static void tstream_npa_connect_writev_done(struct tevent_req *subreq)
 
 	subreq = tstream_u32_read_send(
 		state, state->caller.ev, 0x00FFFFFF, state->unix_stream);
+	if (tevent_req_nomem(subreq, req)) {
+		return;
+	}
 	tevent_req_set_callback(subreq, tstream_npa_connect_readv_done, req);
 }
 
@@ -250,8 +253,7 @@ static void tstream_npa_connect_readv_done(struct tevent_req *subreq)
 
 	err = tstream_u32_read_recv(subreq, state, &in.data, &in.length);
 	TALLOC_FREE(subreq);
-	if (err != 0) {
-		tevent_req_error(req, err);
+	if (tevent_req_error(req, err)) {
 		return;
 	}
 
diff --git a/librpc/rpc/dcesrv_core.h b/librpc/rpc/dcesrv_core.h
index 333671cc3e3..6371552a56d 100644
--- a/librpc/rpc/dcesrv_core.h
+++ b/librpc/rpc/dcesrv_core.h
@@ -26,6 +26,7 @@
 
 #include "librpc/rpc/rpc_common.h"
 #include "librpc/ndr/libndr.h"
+#include "librpc/gen_ndr/security.h"
 
 /* modules can use the following to determine if the interface has changed
  * please increment the version number after each interface change
@@ -115,7 +116,7 @@ struct dcesrv_call_state {
 	 * and skip the reply
 	 *
 	 * this is only allowed to the backend when DCESRV_CALL_STATE_FLAG_MAY_ASYNC
-	 * is alerady set by the frontend
+	 * is already set by the frontend
 	 *
 	 * the backend then needs to call dcesrv_reply() when it's
 	 * ready to send the reply
@@ -191,7 +192,7 @@ struct dcesrv_handle {
 	struct dcesrv_handle *next, *prev;
 	struct dcesrv_assoc_group *assoc_group;
 	struct policy_handle wire_handle;
-	struct dom_sid *sid;
+	struct dom_sid sid;
 	enum dcerpc_AuthLevel min_auth_level;
 	const struct dcesrv_interface *iface;
 	void *data;
diff --git a/librpc/rpc/dcesrv_handles.c b/librpc/rpc/dcesrv_handles.c
index 589a1ebb208..d50831bcf0a 100644
--- a/librpc/rpc/dcesrv_handles.c
+++ b/librpc/rpc/dcesrv_handles.c
@@ -49,7 +49,8 @@ struct dcesrv_handle *dcesrv_handle_create(struct dcesrv_call_state *call,
 	struct dom_sid *sid;
 
 	/*
-	 * For simplicty, ensure we abort here for an interface that has no handles (programmer error)
+	 * For simplicity, ensure we abort here for an interface that
+	 * has no handles (programmer error)
 	 */
 	SMB_ASSERT((context->iface->flags & DCESRV_INTERFACE_FLAGS_HANDLES_NOT_USED) == 0);
 
@@ -60,11 +61,7 @@ struct dcesrv_handle *dcesrv_handle_create(struct dcesrv_call_state *call,
 		return NULL;
 	}
 	h->data = NULL;
-	h->sid = dom_sid_dup(h, sid);
-	if (h->sid == NULL) {
-		talloc_free(h);
-		return NULL;
-	}
+	sid_copy(&h->sid, sid);
 	h->min_auth_level = call->auth_state->auth_level;
 	h->assoc_group = context->conn->assoc_group;
 	h->iface = context->iface;
@@ -95,7 +92,8 @@ struct dcesrv_handle *dcesrv_handle_lookup(struct dcesrv_call_state *call,
 	struct dom_sid *sid;
 
 	/*
-	 * For simplicty, ensure we abort here for an interface that has no handles (programmer error)
+	 * For simplicity, ensure we abort here for an interface that
+	 * has no handles (programmer error)
 	 */
 	SMB_ASSERT((context->iface->flags & DCESRV_INTERFACE_FLAGS_HANDLES_NOT_USED) == 0);
 
@@ -115,10 +113,10 @@ struct dcesrv_handle *dcesrv_handle_lookup(struct dcesrv_call_state *call,
 					 p->handle_type, handle_type));
 				return NULL;
 			}
-			if (!dom_sid_equal(h->sid, sid)) {
+			if (!dom_sid_equal(&h->sid, sid)) {
 				struct dom_sid_buf buf1, buf2;
 				DBG_ERR("Attempt to use invalid sid %s - %s\n",
-					dom_sid_str_buf(h->sid, &buf1),
+					dom_sid_str_buf(&h->sid, &buf1),
 					dom_sid_str_buf(sid, &buf2));
 				return NULL;
 			}
diff --git a/source3/lib/g_lock.c b/source3/lib/g_lock.c
index 36b527706da..7eae374fbcf 100644
--- a/source3/lib/g_lock.c
+++ b/source3/lib/g_lock.c
@@ -438,6 +438,9 @@ static NTSTATUS g_lock_trylock(
 				return NT_STATUS_POSSIBLE_DEADLOCK;
 			}
 
+			DBG_DEBUG("Waiting for lck.exclusive=%s\n",
+				  server_id_str_buf(lck.exclusive, &tmp));
+
 			*blocker = lck.exclusive;
 			return NT_STATUS_LOCK_NOT_GRANTED;
 		}
@@ -559,6 +562,10 @@ static void g_lock_lock_fn(
 	struct server_id blocker = {0};
 
 	state->status = g_lock_trylock(rec, state, value, &blocker);
+	if (!NT_STATUS_IS_OK(state->status)) {
+		DBG_DEBUG("g_lock_trylock returned %s\n",
+			  nt_errstr(state->status));
+	}
 	if (!NT_STATUS_EQUAL(state->status, NT_STATUS_LOCK_NOT_GRANTED)) {
 		return;
 	}
@@ -729,6 +736,7 @@ static void g_lock_lock_simple_fn(
 	void *private_data)
 {
 	struct g_lock_lock_simple_state *state = private_data;
+	struct server_id_buf buf;
 	struct g_lock lck = { .exclusive.pid = 0 };
 	bool ok;
 
@@ -740,11 +748,14 @@ static void g_lock_lock_simple_fn(
 	}
 
 	if (lck.exclusive.pid != 0) {
+		DBG_DEBUG("locked by %s\n",
+			  server_id_str_buf(lck.exclusive, &buf));
 		goto not_granted;
 	}
 
 	if (state->type == G_LOCK_WRITE) {
 		if (lck.num_shared != 0) {
+			DBG_DEBUG("num_shared=%zu\n", lck.num_shared);
 			goto not_granted;
 		}
 		lck.exclusive = state->me;
@@ -792,6 +803,11 @@ NTSTATUS g_lock_lock(struct g_lock_ctx *ctx, TDB_DATA key,
 				  nt_errstr(status));
 			return status;
 		}
+
+		DBG_DEBUG("status=%s, state.status=%s\n",
+			  nt_errstr(status),
+			  nt_errstr(state.status));
+
 		if (NT_STATUS_IS_OK(state.status)) {
 			if (ctx->lock_order != DBWRAP_LOCK_ORDER_NONE) {
 				const char *name = dbwrap_name(ctx->db);
@@ -846,7 +862,7 @@ static void g_lock_unlock_fn(
 	void *private_data)
 {
 	struct g_lock_unlock_state *state = private_data;
-	struct server_id_buf tmp;
+	struct server_id_buf tmp1, tmp2;
 	struct g_lock lck;
 	size_t i;
 	bool ok, exclusive;
@@ -871,7 +887,7 @@ static void g_lock_unlock_fn(
 	if (i < lck.num_shared) {
 		if (exclusive) {
 			DBG_DEBUG("%s both exclusive and shared (%zu)\n",
-				  server_id_str_buf(state->self, &tmp),
+				  server_id_str_buf(state->self, &tmp1),
 				  i);
 			state->status = NT_STATUS_INTERNAL_DB_CORRUPTION;
 			return;
@@ -879,8 +895,10 @@ static void g_lock_unlock_fn(
 		g_lock_del_shared(&lck, i);
 	} else {
 		if (!exclusive) {
-			DBG_DEBUG("Lock %s not found, num_rec=%zu\n",
-				  server_id_str_buf(state->self, &tmp),
+			DBG_DEBUG("Lock not found, self=%s, lck.exclusive=%s, "
+				  "num_rec=%zu\n",
+				  server_id_str_buf(state->self, &tmp1),
+				  server_id_str_buf(lck.exclusive, &tmp2),
 				  lck.num_shared);
 			state->status = NT_STATUS_NOT_FOUND;
 			return;
@@ -962,7 +980,12 @@ static void g_lock_writev_data_fn(
 	exclusive &= (lck.num_shared == 0);
 
 	if (!exclusive) {
-		DBG_DEBUG("Not locked by us\n");
+		struct server_id_buf buf1, buf2;
+		DBG_DEBUG("Not locked by us: self=%s, lck.exclusive=%s, "
+			  "lck.num_shared=%zu\n",
+			  server_id_str_buf(state->self, &buf1),
+			  server_id_str_buf(lck.exclusive, &buf2),
+			  lck.num_shared);
 		state->status = NT_STATUS_NOT_LOCKED;
 		return;
 	}
diff --git a/source3/lib/popt_common.c b/source3/lib/popt_common.c
index d5b60c69ef7..772c85c5c91 100644
--- a/source3/lib/popt_common.c
+++ b/source3/lib/popt_common.c
@@ -29,7 +29,7 @@
  *		-s,--configfile 
  *		-O,--socket-options 
  *		-V,--version
- *		-l,--log-base
+ *		-l,--log-basename
  *		-n,--netbios-name
  *		-W,--workgroup
  *		-i,--scope
diff --git a/source3/lib/util_file.c b/source3/lib/util_file.c
index 2425281f139..ba96eeee365 100644
--- a/source3/lib/util_file.c
+++ b/source3/lib/util_file.c
@@ -28,19 +28,21 @@
 
 struct file_ploadv_state {
 	struct tevent_context *ev;
+	struct tevent_req *subreq;
 	size_t maxsize;
 	int fd;
 	uint8_t *buf;
 };
 
-static int file_ploadv_state_destructor(struct file_ploadv_state *s);
+static void file_ploadv_cleanup_fn(
+	struct tevent_req *req, enum tevent_req_state req_state);
 static void file_ploadv_readable(struct tevent_req *subreq);
 
 struct tevent_req *file_ploadv_send(TALLOC_CTX *mem_ctx,
 				   struct tevent_context *ev,
 				   char * const argl[], size_t maxsize)
 {
-	struct tevent_req *req = NULL, *subreq = NULL;
+	struct tevent_req *req = NULL;
 	struct file_ploadv_state *state = NULL;
 
 	req = tevent_req_create(mem_ctx, &state, struct file_ploadv_state);
@@ -55,23 +57,27 @@ struct tevent_req *file_ploadv_send(TALLOC_CTX *mem_ctx,
 		tevent_req_error(req, errno);
 		return tevent_req_post(req, ev);
 	}
-	talloc_set_destructor(state, file_ploadv_state_destructor);
+	tevent_req_set_cleanup_fn(req, file_ploadv_cleanup_fn);
 
-	subreq = wait_for_read_send(state, state->ev, state->fd, false);
-	if (tevent_req_nomem(subreq, req)) {
+	state->subreq = wait_for_read_send(state, state->ev, state->fd, false);
+	if (tevent_req_nomem(state->subreq, req)) {
 		return tevent_req_post(req, ev);
 	}
-	tevent_req_set_callback(subreq, file_ploadv_readable, req);
+	tevent_req_set_callback(state->subreq, file_ploadv_readable, req);
 	return req;
 }
 
-static int file_ploadv_state_destructor(struct file_ploadv_state *s)
+static void file_ploadv_cleanup_fn(
+	struct tevent_req *req, enum tevent_req_state req_state)
 {
-	if (s->fd != -1) {
-		sys_pclose(s->fd);
-		s->fd = -1;
+	struct file_ploadv_state *state = tevent_req_data(
+		req, struct file_ploadv_state);
+
+	TALLOC_FREE(state->subreq);
+	if (state->fd != -1) {
+		sys_pclose(state->fd);
+		state->fd = -1;
 	}
-	return 0;
 }
 
 static void file_ploadv_readable(struct tevent_req *subreq)
@@ -89,6 +95,7 @@ static void file_ploadv_readable(struct tevent_req *subreq)
 
 	ok = wait_for_read_recv(subreq, &err);
 	TALLOC_FREE(subreq);
+	state->subreq = NULL;
 	if (!ok) {
 		tevent_req_error(req, err);
 		return;
@@ -134,11 +141,11 @@ static void file_ploadv_readable(struct tevent_req *subreq)
 	memcpy(state->buf + bufsize, buf, nread);
 	state->buf[bufsize+nread] = '\0';
 
-	subreq = wait_for_read_send(state, state->ev, state->fd, false);
-	if (tevent_req_nomem(subreq, req)) {
+	state->subreq = wait_for_read_send(state, state->ev, state->fd, false);
+	if (tevent_req_nomem(state->subreq, req)) {
 		return;
 	}
-	tevent_req_set_callback(subreq, file_ploadv_readable, req);


-- 
Samba Shared Repository



More information about the samba-cvs mailing list