s3:libsmb: Pass memory context to cli_full_connection_creds_recv()
authorAndreas Schneider <asn@samba.org>
Thu, 23 Nov 2023 13:57:42 +0000 (14:57 +0100)
committerVolker Lendecke <vl@samba.org>
Mon, 29 Apr 2024 08:43:32 +0000 (08:43 +0000)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/libsmb/cliconnect.c
source3/libsmb/proto.h
source3/libsmb/pylibsmb.c

index 8ac22ba2ae83339a5da6ba29b818925cf2773107..6918a3ae6a53bf9763fb3c53d2426f1495c95bb1 100644 (file)
@@ -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;
index 2f67cbfd074d366dd68eb5d5c7b4ff64ea7f7e07..088b7732beda6b50f7f0fa5640cf6e32c0cd5423 100644 (file)
@@ -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,
index 52ba449bfa9384046cb71b952cb217d4e191c890..aa87fa0c1a2e06b8a9f61ee803407d0143122c1e 100644 (file)
@@ -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)) {