s3-dcerpc: fix dcerpc_push_ncacn_packet, pass arg by address
authorSimo Sorce <idra@samba.org>
Sun, 11 Jul 2010 16:18:13 +0000 (12:18 -0400)
committerGünther Deschner <gd@samba.org>
Tue, 13 Jul 2010 12:44:11 +0000 (14:44 +0200)
There is no need to copy the whole structure twice by passing it in by value.

Signed-off-by: Günther Deschner <gd@samba.org>
source3/include/proto.h
source3/rpc_client/cli_pipe.c
source3/rpc_server/srv_pipe.c

index a8fa4c197714d79f2696321586019ae2c968d397..0fbe70a89c6210c2a83e9ef21d439c15dca8a76b 100644 (file)
@@ -4850,7 +4850,7 @@ NTSTATUS dcerpc_push_ncacn_packet(TALLOC_CTX *mem_ctx,
                                  uint8_t pfc_flags,
                                  uint16_t auth_length,
                                  uint32_t call_id,
-                                 union dcerpc_payload u,
+                                 union dcerpc_payload *u,
                                  DATA_BLOB *blob);
 NTSTATUS dcerpc_push_ncacn_packet_header(TALLOC_CTX *mem_ctx,
                                         enum dcerpc_pkt_type ptype,
index 13d2e8765351ec274f12b977fb100dd2e80d7c66..91eb767667b4f0bbb443c6744a99b6702e4c2b81 100644 (file)
@@ -302,7 +302,7 @@ NTSTATUS dcerpc_push_ncacn_packet(TALLOC_CTX *mem_ctx,
                                  uint8_t pfc_flags,
                                  uint16_t auth_length,
                                  uint32_t call_id,
-                                 union dcerpc_payload u,
+                                 union dcerpc_payload *u,
                                  DATA_BLOB *blob)
 {
        struct ncacn_packet r;
@@ -318,7 +318,7 @@ NTSTATUS dcerpc_push_ncacn_packet(TALLOC_CTX *mem_ctx,
        r.drep[3]               = 0;
        r.auth_length           = auth_length;
        r.call_id               = call_id;
-       r.u                     = u;
+       r.u                     = *u;
 
        ndr_err = ndr_push_struct_blob(blob, mem_ctx, &r,
                (ndr_push_flags_fn_t)ndr_push_ncacn_packet);
@@ -2087,7 +2087,7 @@ static NTSTATUS create_bind_or_alt_ctx_internal(enum dcerpc_pkt_type ptype,
                                          DCERPC_PFC_FLAG_LAST,
                                          auth_len ? auth_len - RPC_HDR_AUTH_LEN : 0,
                                          rpc_call_id,
-                                         u,
+                                         &u,
                                          &blob);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("create_bind_or_alt_ctx_internal: failed to marshall RPC_HDR_RB.\n"));
@@ -2529,7 +2529,7 @@ static NTSTATUS prepare_next_frag(struct rpc_api_pipe_req_state *state,
                                          flags,
                                          auth_len,
                                          state->call_id,
-                                         u,
+                                         &u,
                                          &blob);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
@@ -2789,7 +2789,7 @@ static NTSTATUS create_rpc_bind_auth3(struct rpc_pipe_client *cli,
                                          DCERPC_PFC_FLAG_LAST,
                                          pauth_blob->length,
                                          rpc_call_id,
-                                         u,
+                                         &u,
                                          &blob);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("create_bind_or_alt_ctx_internal: failed to marshall RPC_HDR_RB.\n"));
index 53ddfcbafd818fae58016fd92ebea46d18edb787..dbaaea61b92b5f232a7fca400f3a4a8b42d2e113 100644 (file)
@@ -870,7 +870,7 @@ static bool setup_bind_nak(pipes_struct *p, struct ncacn_packet *pkt)
                                                DCERPC_PFC_FLAG_LAST,
                                          0,
                                          pkt->call_id,
-                                         u,
+                                         &u,
                                          &blob);
        if (!NT_STATUS_IS_OK(status)) {
                prs_mem_free(&p->out_data.frag);
@@ -933,7 +933,7 @@ bool setup_fault_pdu(pipes_struct *p, NTSTATUS fault_status)
                                           DCERPC_PFC_FLAG_DID_NOT_EXECUTE,
                                          0,
                                          p->call_id,
-                                         u,
+                                         &u,
                                          &blob);
        if (!NT_STATUS_IS_OK(status)) {
                prs_mem_free(&p->out_data.frag);