[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Fri Mar 22 19:03:02 UTC 2019


The branch, master has been updated
       via  7841c62ae4c rpc_server3: Add a 
 to a DEBUG message
       via  13b66508a0c librpc: Add a required #include
       via  9d4bf6bb9dd tsocket: Simplify tsocket.h
       via  7bea3541256 tstream_npa: Avoid an unnecessary ZERO_STRUCTP
       via  bd51c7d3ef9 rpc_server: Avoid casts in DBG statements
       via  02d884ed8a3 rpc_server: Simplify named_pipe_accept_function
       via  46a3436734c rpc_server: Favor talloc_move over talloc_steal
       via  9bebe5c7db2 rpc_server: Make make_server_pipes_struct API safer
       via  a6c653a978b rpc_server: Fix an error path memleak in make_server_pipes_struct
       via  1220f69caba rpc_server: Simplify make_server_pipes_struct
      from  63084375e3c docs: Update smbclient manpage for --max-protocol

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


- Log -----------------------------------------------------------------
commit 7841c62ae4caeaa7bc13e7c6b8b930da7c22c97f
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Mar 19 16:08:43 2019 +0100

    rpc_server3: Add a \n to a DEBUG message
    
    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): Fri Mar 22 19:02:32 UTC 2019 on sn-devel-144

commit 13b66508a0ce61cdf4c9532e263f837952480468
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Mar 15 14:31:57 2019 +0100

    librpc: Add a required #include
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 9d4bf6bb9dddfc9114eb295516f4bb4fc42edc15
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 20 17:26:52 2019 +0100

    tsocket: Simplify tsocket.h
    
    tevent.h already includes talloc.h
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 7bea3541256a68dc4ead92780a3c2654dfc7fbee
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 20 08:43:59 2019 +0100

    tstream_npa: Avoid an unnecessary ZERO_STRUCTP
    
    tevent_req_create already zeros out "state"
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit bd51c7d3ef9d03977d672fff0b2923fb9863addf
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 20 16:49:26 2019 +0100

    rpc_server: Avoid casts in DBG statements
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 02d884ed8a336f656482222f518e80a6c27773c3
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 20 15:57:59 2019 +0100

    rpc_server: Simplify named_pipe_accept_function
    
    Make use of named_pipe_client_init
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 46a3436734cf84ecb8048f69026a419132696b6d
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 20 14:15:10 2019 +0100

    rpc_server: Favor talloc_move over talloc_steal
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 9bebe5c7db2e3452eb8f72dcc9f6270c1823963f
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 20 13:50:03 2019 +0100

    rpc_server: Make make_server_pipes_struct API safer
    
    Make it clear that we talloc_steal by NULLing out the caller's
    session_info
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit a6c653a978b3a14833beb3deedcf0634b8ce63fa
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 20 13:46:58 2019 +0100

    rpc_server: Fix an error path memleak in make_server_pipes_struct
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 1220f69caba5d5aa4ded0cd09d8a1af4fd13bfa7
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Mar 20 13:45:32 2019 +0100

    rpc_server: Simplify make_server_pipes_struct
    
    Do an early return on error
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

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

Summary of changes:
 lib/tsocket/tsocket.h                |  1 -
 libcli/named_pipe_auth/npa_tstream.c |  2 --
 source3/rpc_server/rpc_ncacn_np.c    |  4 +--
 source3/rpc_server/rpc_server.c      | 64 ++++++++++++++++--------------------
 source3/rpc_server/rpc_server.h      |  4 ++-
 source3/rpc_server/srv_pipe.c        |  2 +-
 6 files changed, 35 insertions(+), 42 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/tsocket/tsocket.h b/lib/tsocket/tsocket.h
index ab4cef92bd5..43f8881dbee 100644
--- a/lib/tsocket/tsocket.h
+++ b/lib/tsocket/tsocket.h
@@ -24,7 +24,6 @@
 #ifndef _TSOCKET_H
 #define _TSOCKET_H
 
-#include <talloc.h>
 #include <tevent.h>
 
 struct tsocket_address;
diff --git a/libcli/named_pipe_auth/npa_tstream.c b/libcli/named_pipe_auth/npa_tstream.c
index 9ae4acb7f0b..8e93b8175a7 100644
--- a/libcli/named_pipe_auth/npa_tstream.c
+++ b/libcli/named_pipe_auth/npa_tstream.c
@@ -1120,8 +1120,6 @@ struct tevent_req *tstream_npa_accept_existing_send(TALLOC_CTX *mem_ctx,
 		goto post;
 	}
 
-	ZERO_STRUCTP(state);
-
 	state->ev = ev;
 	state->plain = plain;
 	state->file_type = file_type;
diff --git a/source3/rpc_server/rpc_ncacn_np.c b/source3/rpc_server/rpc_ncacn_np.c
index 5ee98a10d70..c45e9cb3a2b 100644
--- a/source3/rpc_server/rpc_ncacn_np.c
+++ b/source3/rpc_server/rpc_ncacn_np.c
@@ -164,7 +164,7 @@ NTSTATUS make_internal_rpc_pipe_socketpair(
 				      NCACN_NP,
 				      npc->remote_client_addr,
 				      npc->local_server_addr,
-				      npc->session_info,
+				      &npc->session_info,
 				      &npc->p,
 				      &error);
 	if (rc == -1) {
@@ -186,7 +186,7 @@ NTSTATUS make_internal_rpc_pipe_socketpair(
 	}
 	tevent_req_set_callback(subreq, named_pipe_packet_process, npc);
 
-	*pnpa = talloc_steal(mem_ctx, npa);
+	*pnpa = talloc_move(mem_ctx, &npa);
 	status = NT_STATUS_OK;
 out:
 	talloc_free(tmp_ctx);
diff --git a/source3/rpc_server/rpc_server.c b/source3/rpc_server/rpc_server.c
index 36dff114f90..0230d73abb2 100644
--- a/source3/rpc_server/rpc_server.c
+++ b/source3/rpc_server/rpc_server.c
@@ -42,10 +42,11 @@ int make_server_pipes_struct(TALLOC_CTX *mem_ctx,
 			     enum dcerpc_transport_t transport,
 			     const struct tsocket_address *remote_address,
 			     const struct tsocket_address *local_address,
-			     struct auth_session_info *session_info,
+			     struct auth_session_info **psession_info,
 			     struct pipes_struct **_p,
 			     int *perrno)
 {
+	struct auth_session_info *session_info = *psession_info;
 	struct pipes_struct *p;
 	int ret;
 
@@ -57,16 +58,18 @@ int make_server_pipes_struct(TALLOC_CTX *mem_ctx,
 		return -1;
 	}
 
-	if (session_info->unix_token && session_info->unix_info && session_info->security_token) {
-		/* Don't call create_local_token(), we already have the full details here */
-		p->session_info = talloc_steal(p, session_info);
-
-	} else {
-		DEBUG(0, ("Supplied session_info in make_server_pipes_struct was incomplete!"));
+	if ((session_info->unix_token == NULL) ||
+	    (session_info->unix_info == NULL) ||
+	    (session_info->security_token == NULL)) {
+		DBG_ERR("Supplied session_info was incomplete!\n");
+		TALLOC_FREE(p);
 		*perrno = EINVAL;
 		return -1;
 	}
 
+	/* Don't call create_local_token(), we already have the full details here */
+	p->session_info = talloc_move(p, psession_info);
+
 	*_p = p;
 	return 0;
 }
@@ -290,26 +293,21 @@ void named_pipe_accept_function(struct tevent_context *ev_ctx,
 	struct tevent_req *subreq;
 	int ret;
 
-	npc = talloc_zero(ev_ctx, struct named_pipe_client);
-	if (!npc) {
-		DEBUG(0, ("Out of memory!\n"));
-		close(fd);
-		return;
-	}
-
-	npc->pipe_name = talloc_strdup(npc, pipe_name);
-	if (npc->pipe_name == NULL) {
+	npc = named_pipe_client_init(
+		ev_ctx,
+		ev_ctx,
+		msg_ctx,
+		pipe_name,
+		term_fn,
+		FILE_TYPE_MESSAGE_MODE_PIPE, /* file_type */
+		0xff | 0x0400 | 0x0100,	     /* device_state */
+		4096,			     /* allocation_size */
+		private_data);
+	if (npc == NULL) {
 		DEBUG(0, ("Out of memory!\n"));
-		TALLOC_FREE(npc);
 		close(fd);
 		return;
 	}
-	npc->ev = ev_ctx;
-	npc->msg_ctx = msg_ctx;
-	npc->term_fn = term_fn;
-	npc->private_data = private_data;
-
-	talloc_set_destructor(npc, named_pipe_destructor);
 
 	/* make sure socket is in NON blocking state */
 	ret = set_blocking(fd, false);
@@ -328,10 +326,6 @@ void named_pipe_accept_function(struct tevent_context *ev_ctx,
 		return;
 	}
 
-	npc->file_type = FILE_TYPE_MESSAGE_MODE_PIPE;
-	npc->device_state = 0xff | 0x0400 | 0x0100;
-	npc->allocation_size = 4096;
-
 	subreq = tstream_npa_accept_existing_send(npc, npc->ev, plain,
 						  npc->file_type,
 						  npc->device_state,
@@ -378,7 +372,7 @@ static void named_pipe_accept_done(struct tevent_req *subreq)
 				       npc->pipe_name, NCACN_NP,
 				       npc->remote_client_addr,
 				       npc->local_server_addr,
-				       npc->session_info,
+				       &npc->session_info,
 				       &npc->p, &error);
 	if (ret != 0) {
 		DEBUG(2, ("Failed to create pipes_struct! (%s)\n",
@@ -502,14 +496,14 @@ void named_pipe_packet_process(struct tevent_req *subreq)
 		return;
 	}
 
-	DEBUG(10, ("Sending %u fragments in a total of %u bytes\n",
-		   (unsigned int)npc->count,
-		   (unsigned int)npc->p->out_data.data_sent_length));
+	DBG_DEBUG("Sending %zu fragments in a total of %"PRIu32" bytes\n",
+		  npc->count,
+		  npc->p->out_data.data_sent_length);
 
 	for (i = 0; i < npc->count; i++) {
-		DEBUG(10, ("Sending PDU number: %d, PDU Length: %u\n",
-			  (unsigned int)i,
-			  (unsigned int)npc->iov[i].iov_len));
+		DBG_DEBUG("Sending PDU number: %zu, PDU Length: %zu\n",
+			  i,
+			  npc->iov[i].iov_len);
 		dump_data(11, (const uint8_t *)npc->iov[i].iov_base,
 				npc->iov[i].iov_len);
 
@@ -1125,7 +1119,7 @@ void dcerpc_ncacn_accept(struct tevent_context *ev_ctx,
 				      ncacn_conn->transport,
 				      ncacn_conn->remote_client_addr,
 				      ncacn_conn->local_server_addr,
-				      ncacn_conn->session_info,
+				      &ncacn_conn->session_info,
 				      &ncacn_conn->p,
 				      &sys_errno);
 	if (rc < 0) {
diff --git a/source3/rpc_server/rpc_server.h b/source3/rpc_server/rpc_server.h
index fd8c652f067..a443a0f6a0f 100644
--- a/source3/rpc_server/rpc_server.h
+++ b/source3/rpc_server/rpc_server.h
@@ -20,6 +20,8 @@
 #ifndef _RPC_SERVER_H_
 #define _RPC_SERVER_H_
 
+#include "librpc/rpc/rpc_common.h" /* For enum dcerpc_transport_t */
+
 struct pipes_struct;
 
 typedef bool (*dcerpc_ncacn_disconnect_fn)(struct pipes_struct *p);
@@ -71,7 +73,7 @@ int make_server_pipes_struct(TALLOC_CTX *mem_ctx,
 			     enum dcerpc_transport_t transport,
 			     const struct tsocket_address *remote_address,
 			     const struct tsocket_address *local_address,
-			     struct auth_session_info *session_info,
+			     struct auth_session_info **session_info,
 			     struct pipes_struct **_p,
 			     int *perrno);
 
diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c
index 7a1c6159467..fec8d276e13 100644
--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -1878,7 +1878,7 @@ void process_complete_pdu(struct pipes_struct *p, struct ncacn_packet *pkt)
 
 done:
 	if (!reply) {
-		DEBUG(3,("DCE/RPC fault sent!"));
+		DBG_NOTICE("DCE/RPC fault sent!\n");
 		set_incoming_fault(p);
 		setup_fault_pdu(p, NT_STATUS(DCERPC_NCA_S_PROTO_ERROR));
 	}


-- 
Samba Shared Repository



More information about the samba-cvs mailing list