From: Andreas Schneider Date: Thu, 23 Nov 2023 13:57:42 +0000 (+0100) Subject: s3:libsmb: Pass memory context to cli_full_connection_creds_recv() X-Git-Tag: tdb-1.4.11~911 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c63d5bdab156d1b14e07b56d02032f485530ff0;p=thirdparty%2Fsamba.git s3:libsmb: Pass memory context to cli_full_connection_creds_recv() Signed-off-by: Andreas Schneider Reviewed-by: Volker Lendecke --- diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 8ac22ba2ae8..6918a3ae6a5 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -3791,7 +3791,8 @@ static void cli_full_connection_creds_tcon_done(struct tevent_req *subreq) } NTSTATUS cli_full_connection_creds_recv(struct tevent_req *req, - struct cli_state **output_cli) + TALLOC_CTX *mem_ctx, + struct cli_state **output_cli) { struct cli_full_connection_creds_state *state = tevent_req_data( req, struct cli_full_connection_creds_state); @@ -3800,7 +3801,7 @@ NTSTATUS cli_full_connection_creds_recv(struct tevent_req *req, if (tevent_req_is_nterror(req, &status)) { return status; } - *output_cli = talloc_move(NULL, &state->cli); + *output_cli = talloc_move(mem_ctx, &state->cli); talloc_set_destructor(state, NULL); return NT_STATUS_OK; } @@ -3831,7 +3832,7 @@ NTSTATUS cli_full_connection_creds(struct cli_state **output_cli, if (!tevent_req_poll_ntstatus(req, ev, &status)) { goto fail; } - status = cli_full_connection_creds_recv(req, output_cli); + status = cli_full_connection_creds_recv(req, NULL, output_cli); fail: TALLOC_FREE(ev); return status; diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h index 2f67cbfd074..088b7732bed 100644 --- a/source3/libsmb/proto.h +++ b/source3/libsmb/proto.h @@ -110,6 +110,7 @@ struct tevent_req *cli_full_connection_creds_send( int flags, struct smb2_negotiate_contexts *negotiate_contexts); NTSTATUS cli_full_connection_creds_recv(struct tevent_req *req, + TALLOC_CTX *mem_ctx, struct cli_state **output_cli); NTSTATUS cli_full_connection_creds(struct cli_state **output_cli, const char *my_name, diff --git a/source3/libsmb/pylibsmb.c b/source3/libsmb/pylibsmb.c index 52ba449bfa9..aa87fa0c1a2 100644 --- a/source3/libsmb/pylibsmb.c +++ b/source3/libsmb/pylibsmb.c @@ -646,7 +646,7 @@ static int py_cli_state_init(struct py_cli_state *self, PyObject *args, if (!py_tevent_req_wait_exc(self, req)) { return -1; } - status = cli_full_connection_creds_recv(req, &self->cli); + status = cli_full_connection_creds_recv(req, NULL, &self->cli); TALLOC_FREE(req); if (!NT_STATUS_IS_OK(status)) {