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 <v...@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 <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Fri Mar 22 19:02:32 UTC 2019 on sn-devel-144 commit 13b66508a0ce61cdf4c9532e263f837952480468 Author: Volker Lendecke <v...@samba.org> Date: Fri Mar 15 14:31:57 2019 +0100 librpc: Add a required #include Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 9d4bf6bb9dddfc9114eb295516f4bb4fc42edc15 Author: Volker Lendecke <v...@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 <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 7bea3541256a68dc4ead92780a3c2654dfc7fbee Author: Volker Lendecke <v...@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 <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit bd51c7d3ef9d03977d672fff0b2923fb9863addf Author: Volker Lendecke <v...@samba.org> Date: Wed Mar 20 16:49:26 2019 +0100 rpc_server: Avoid casts in DBG statements Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 02d884ed8a336f656482222f518e80a6c27773c3 Author: Volker Lendecke <v...@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 <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 46a3436734cf84ecb8048f69026a419132696b6d Author: Volker Lendecke <v...@samba.org> Date: Wed Mar 20 14:15:10 2019 +0100 rpc_server: Favor talloc_move over talloc_steal Signed-off-by: Volker Lendecke <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 9bebe5c7db2e3452eb8f72dcc9f6270c1823963f Author: Volker Lendecke <v...@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 <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit a6c653a978b3a14833beb3deedcf0634b8ce63fa Author: Volker Lendecke <v...@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 <v...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> commit 1220f69caba5d5aa4ded0cd09d8a1af4fd13bfa7 Author: Volker Lendecke <v...@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 <v...@samba.org> Reviewed-by: Jeremy Allison <j...@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