From b523bde4998b95c676c01b660511ad77029471d2 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 17 Jun 2005 06:30:03 +0000 Subject: r7675: Use correct memory context for anonymous session setup auth context (no need for it to hang around forever). Add test for this behaviour. Andrew Bartlett (This used to be commit 36dc2491d778fbbff32c4abdf95faa9f83024e12) --- source4/smb_server/sesssetup.c | 4 ++-- source4/torture/raw/context.c | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/source4/smb_server/sesssetup.c b/source4/smb_server/sesssetup.c index a7005e39c5..6f976f0cc6 100644 --- a/source4/smb_server/sesssetup.c +++ b/source4/smb_server/sesssetup.c @@ -142,14 +142,14 @@ static NTSTATUS sesssetup_nt1(struct smbsrv_request *req, union smb_sesssetup *s return NT_STATUS_ACCESS_DENIED; } - status = make_user_info_anonymous(req->smb_conn, &user_info); + status = make_user_info_anonymous(mem_ctx, &user_info); if (!NT_STATUS_IS_OK(status)) { talloc_free(mem_ctx); return status; } /* TODO: should we use just "anonymous" here? */ - status = auth_context_create(req->smb_conn, lp_auth_methods(), + status = auth_context_create(mem_ctx, lp_auth_methods(), &auth_context, req->smb_conn->connection->event.ctx); if (!NT_STATUS_IS_OK(status)) { diff --git a/source4/torture/raw/context.c b/source4/torture/raw/context.c index 11065648b0..948dc4e3e5 100644 --- a/source4/torture/raw/context.c +++ b/source4/torture/raw/context.c @@ -62,6 +62,8 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) struct smbcli_session *session; struct smbcli_session *session2; struct smbcli_session *session3; + struct smbcli_session *session4; + struct cli_credentials *anon_creds; struct smbcli_session *sessions[15]; struct composite_context *composite_contexts[15]; struct smbcli_tree *tree; @@ -137,6 +139,25 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx) CHECK_STATUS(status, NT_STATUS_ACCESS_DENIED); talloc_free(session3); + + printf("create a fouth anonymous security context on the same transport, without extended security\n"); + session4 = smbcli_session_init(cli->transport, mem_ctx, False); + + session4->vuid = session->vuid; + setup.in.sesskey = cli->transport->negotiate.sesskey; + setup.in.capabilities = 0; /* force a non extended security login (should fail) */ + setup.in.workgroup = lp_workgroup(); + + anon_creds = cli_credentials_init(mem_ctx); + cli_credentials_set_conf(anon_creds); + cli_credentials_set_anonymous(anon_creds); + + setup.in.credentials = anon_creds; + + status = smb_composite_sesssetup(session3, &setup); + CHECK_STATUS(status, NT_STATUS_OK); + + talloc_free(session4); } printf("use the same tree as the existing connection\n"); -- cgit