78 lines
3.0 KiB
Diff
78 lines
3.0 KiB
Diff
From 7a08094b4532fb17161dc4c8d50425226becd528 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Metzmacher <metze@samba.org>
|
|
Date: Wed, 30 Nov 2022 14:46:59 +0100
|
|
Subject: [PATCH 03/30] CVE-2022-38023 libcli/auth: pass lp_ctx to
|
|
netlogon_creds_cli_set_global_db()
|
|
|
|
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15240
|
|
|
|
Signed-off-by: Stefan Metzmacher <metze@samba.org>
|
|
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
|
|
Reviewed-by: Ralph Boehme <slow@samba.org>
|
|
(cherry picked from commit 992f39a2c8a58301ceeb965f401e29cd64c5a209)
|
|
|
|
Conflict: NA
|
|
Reference: https://attachments.samba.org/attachment.cgi?id=17692
|
|
---
|
|
libcli/auth/netlogon_creds_cli.c | 3 ++-
|
|
libcli/auth/netlogon_creds_cli.h | 2 +-
|
|
source3/rpc_client/cli_netlogon.c | 2 +-
|
|
source3/utils/destroy_netlogon_creds_cli.c | 2 +-
|
|
4 files changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/libcli/auth/netlogon_creds_cli.c b/libcli/auth/netlogon_creds_cli.c
|
|
index 716a565128dd..a31de47551d5 100644
|
|
--- a/libcli/auth/netlogon_creds_cli.c
|
|
+++ b/libcli/auth/netlogon_creds_cli.c
|
|
@@ -202,7 +202,8 @@ static NTSTATUS netlogon_creds_cli_context_common(
|
|
|
|
static struct db_context *netlogon_creds_cli_global_db;
|
|
|
|
-NTSTATUS netlogon_creds_cli_set_global_db(struct db_context **db)
|
|
+NTSTATUS netlogon_creds_cli_set_global_db(struct loadparm_context *lp_ctx,
|
|
+ struct db_context **db)
|
|
{
|
|
if (netlogon_creds_cli_global_db != NULL) {
|
|
return NT_STATUS_INVALID_PARAMETER_MIX;
|
|
diff --git a/libcli/auth/netlogon_creds_cli.h b/libcli/auth/netlogon_creds_cli.h
|
|
index 6f40a46aa0a6..d10197c2d2af 100644
|
|
--- a/libcli/auth/netlogon_creds_cli.h
|
|
+++ b/libcli/auth/netlogon_creds_cli.h
|
|
@@ -31,7 +31,7 @@ struct messaging_context;
|
|
struct dcerpc_binding_handle;
|
|
struct db_context;
|
|
|
|
-NTSTATUS netlogon_creds_cli_set_global_db(struct db_context **db);
|
|
+NTSTATUS netlogon_creds_cli_set_global_db(struct loadparm_context *lp_ctx, struct db_context **db);
|
|
NTSTATUS netlogon_creds_cli_open_global_db(struct loadparm_context *lp_ctx);
|
|
void netlogon_creds_cli_close_global_db(void);
|
|
|
|
diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c
|
|
index da445122dbdc..762802d32780 100644
|
|
--- a/source3/rpc_client/cli_netlogon.c
|
|
+++ b/source3/rpc_client/cli_netlogon.c
|
|
@@ -76,7 +76,7 @@ NTSTATUS rpccli_pre_open_netlogon_creds(void)
|
|
return NT_STATUS_NO_MEMORY;
|
|
}
|
|
|
|
- status = netlogon_creds_cli_set_global_db(&global_db);
|
|
+ status = netlogon_creds_cli_set_global_db(lp_ctx, &global_db);
|
|
TALLOC_FREE(frame);
|
|
if (!NT_STATUS_IS_OK(status)) {
|
|
return status;
|
|
diff --git a/source3/utils/destroy_netlogon_creds_cli.c b/source3/utils/destroy_netlogon_creds_cli.c
|
|
index f28cad527dfb..a2e1952e434c 100644
|
|
--- a/source3/utils/destroy_netlogon_creds_cli.c
|
|
+++ b/source3/utils/destroy_netlogon_creds_cli.c
|
|
@@ -82,7 +82,7 @@ int main(int argc, const char *argv[])
|
|
goto done;
|
|
}
|
|
|
|
- status = netlogon_creds_cli_set_global_db(&global_db);
|
|
+ status = netlogon_creds_cli_set_global_db(lp_ctx, &global_db);
|
|
if (!NT_STATUS_IS_OK(status)) {
|
|
fprintf(stderr,
|
|
"netlogon_creds_cli_set_global_db failed: %s\n",
|
|
--
|
|
2.34.1
|