From 2a4e785040dbdc687061afa246b56fb07802f0e7 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 13 Aug 2021 16:15:16 +0200 Subject: [PATCH] rpc_client: Adapt rpc_api_pipe_req_send() to talloc_req conventions Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- source3/rpc_client/cli_pipe.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index 0e01ce1c139..217bbf63ed0 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -1327,18 +1327,18 @@ static struct tevent_req *rpc_api_pipe_req_send(TALLOC_CTX *mem_ctx, if (cli->max_xmit_frag < DCERPC_REQUEST_LENGTH + RPC_MAX_SIGN_SIZE) { /* Server is screwed up ! */ - status = NT_STATUS_INVALID_PARAMETER; - goto post_status; + tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER); + return tevent_req_post(req, ev); } status = prepare_verification_trailer(state); - if (!NT_STATUS_IS_OK(status)) { - goto post_status; + if (tevent_req_nterror(req, status)) { + return tevent_req_post(req, ev); } status = prepare_next_frag(state, &is_last_frag); - if (!NT_STATUS_IS_OK(status)) { - goto post_status; + if (tevent_req_nterror(req, status)) { + return tevent_req_post(req, ev); } if (is_last_frag) { @@ -1346,28 +1346,21 @@ static struct tevent_req *rpc_api_pipe_req_send(TALLOC_CTX *mem_ctx, &state->rpc_out, DCERPC_PKT_RESPONSE, state->call_id); - if (subreq == NULL) { - goto fail; + if (tevent_req_nomem(subreq, req)) { + return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpc_api_pipe_req_done, req); } else { subreq = rpc_write_send(state, ev, cli->transport, state->rpc_out.data, state->rpc_out.length); - if (subreq == NULL) { - goto fail; + if (tevent_req_nomem(subreq, req)) { + return tevent_req_post(req, ev); } tevent_req_set_callback(subreq, rpc_api_pipe_req_write_done, req); } return req; - - post_status: - tevent_req_nterror(req, status); - return tevent_req_post(req, ev); - fail: - TALLOC_FREE(req); - return NULL; } static NTSTATUS prepare_verification_trailer(struct rpc_api_pipe_req_state *state)