The branch, master has been updated
       via  2128159 rpc_server: Init local_server_* in 
make_internal_rpc_pipe_socketpair
      from  462eb4a lib/util: Call log_stack_trace() in smb_panic_default()

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


- Log -----------------------------------------------------------------
commit 212815969f4a706bc8395e2f6dbf225318ff2ad7
Author: Volker Lendecke <[email protected]>
Date:   Wed Apr 11 10:42:21 2018 +0200

    rpc_server: Init local_server_* in make_internal_rpc_pipe_socketpair
    
    Bug: https://bugzilla.samba.org/show_bug.cgi?id=13370
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Stefan Metzmacher <[email protected]>
    
    Autobuild-User(master): Volker Lendecke <[email protected]>
    Autobuild-Date(master): Wed Apr 11 15:19:19 CEST 2018 on sn-devel-144

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

Summary of changes:
 source3/rpc_server/rpc_ncacn_np.c | 31 +++++++++++++++++++++++--------
 source3/rpc_server/rpc_ncacn_np.h | 18 ++++++++++--------
 source3/rpc_server/srv_pipe_hnd.c | 18 ++++++++++--------
 3 files changed, 43 insertions(+), 24 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_server/rpc_ncacn_np.c 
b/source3/rpc_server/rpc_ncacn_np.c
index 0728f54..d7e7785 100644
--- a/source3/rpc_server/rpc_ncacn_np.c
+++ b/source3/rpc_server/rpc_ncacn_np.c
@@ -69,14 +69,16 @@ fail:
        return NULL;
 }
 
-NTSTATUS make_internal_rpc_pipe_socketpair(TALLOC_CTX *mem_ctx,
-                                          struct tevent_context *ev_ctx,
-                                          struct messaging_context *msg_ctx,
-                                          const char *pipe_name,
-                                          const struct ndr_syntax_id *syntax,
-                                          const struct tsocket_address 
*remote_address,
-                                          const struct auth_session_info 
*session_info,
-                                          struct npa_state **pnpa)
+NTSTATUS make_internal_rpc_pipe_socketpair(
+       TALLOC_CTX *mem_ctx,
+       struct tevent_context *ev_ctx,
+       struct messaging_context *msg_ctx,
+       const char *pipe_name,
+       const struct ndr_syntax_id *syntax,
+       const struct tsocket_address *remote_address,
+       const struct tsocket_address *local_address,
+       const struct auth_session_info *session_info,
+       struct npa_state **pnpa)
 {
        TALLOC_CTX *tmp_ctx = talloc_stackframe();
        struct named_pipe_client *npc;
@@ -136,6 +138,19 @@ NTSTATUS make_internal_rpc_pipe_socketpair(TALLOC_CTX 
*mem_ctx,
                goto out;
        }
 
+       npc->local_server_addr = tsocket_address_copy(local_address, npc);
+       if (npc->local_server_addr == NULL) {
+               status = NT_STATUS_NO_MEMORY;
+               goto out;
+       }
+
+       npc->local_server_name = tsocket_address_inet_addr_string(
+               npc->local_server_addr, npc);
+       if (npc->local_server_name == NULL) {
+               status = NT_STATUS_NO_MEMORY;
+               goto out;
+       }
+
        npc->session_info = copy_session_info(npc, session_info);
        if (npc->session_info == NULL) {
                status = NT_STATUS_NO_MEMORY;
diff --git a/source3/rpc_server/rpc_ncacn_np.h 
b/source3/rpc_server/rpc_ncacn_np.h
index 03bbd3f..9ba5864 100644
--- a/source3/rpc_server/rpc_ncacn_np.h
+++ b/source3/rpc_server/rpc_ncacn_np.h
@@ -44,14 +44,16 @@ NTSTATUS make_external_rpc_pipe(TALLOC_CTX *mem_ctx,
                                const struct auth_session_info *session_info,
                                struct npa_state **pnpa);
 
-NTSTATUS make_internal_rpc_pipe_socketpair(TALLOC_CTX *mem_ctx,
-                                          struct tevent_context *ev_ctx,
-                                          struct messaging_context *msg_ctx,
-                                          const char *pipe_name,
-                                          const struct ndr_syntax_id *syntax,
-                                          const struct tsocket_address 
*remote_address,
-                                          const struct auth_session_info 
*session_info,
-                                          struct npa_state **pnpa);
+NTSTATUS make_internal_rpc_pipe_socketpair(
+       TALLOC_CTX *mem_ctx,
+       struct tevent_context *ev_ctx,
+       struct messaging_context *msg_ctx,
+       const char *pipe_name,
+       const struct ndr_syntax_id *syntax,
+       const struct tsocket_address *remote_address,
+       const struct tsocket_address *local_address,
+       const struct auth_session_info *session_info,
+       struct npa_state **pnpa);
 
 struct np_proxy_state {
        uint16_t file_type;
diff --git a/source3/rpc_server/srv_pipe_hnd.c 
b/source3/rpc_server/srv_pipe_hnd.c
index f9b7855..baa4ce9 100644
--- a/source3/rpc_server/srv_pipe_hnd.c
+++ b/source3/rpc_server/srv_pipe_hnd.c
@@ -106,14 +106,16 @@ NTSTATUS np_open(TALLOC_CTX *mem_ctx, const char *name,
                        return NT_STATUS_OBJECT_NAME_NOT_FOUND;
                }
 
-               status = make_internal_rpc_pipe_socketpair(handle,
-                                                          ev_ctx,
-                                                          msg_ctx,
-                                                          name,
-                                                          &syntax,
-                                                          
remote_client_address,
-                                                          session_info,
-                                                          &npa);
+               status = make_internal_rpc_pipe_socketpair(
+                       handle,
+                       ev_ctx,
+                       msg_ctx,
+                       name,
+                       &syntax,
+                       remote_client_address,
+                       local_server_address,
+                       session_info,
+                       &npa);
                if (!NT_STATUS_IS_OK(status)) {
                        talloc_free(handle);
                        return status;


-- 
Samba Shared Repository

Reply via email to