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

Reply via email to