From: Stefan Metzmacher Date: Wed, 30 Nov 2022 13:46:59 +0000 (+0100) Subject: CVE-2022-38023 libcli/auth: pass lp_ctx to netlogon_creds_cli_set_global_db() X-Git-Tag: samba-4.15.13~92 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=deffd8ea00fecbbf61c4a26279176fe0ae3fe438;p=thirdparty%2Fsamba.git 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 Reviewed-by: Andrew Bartlett Reviewed-by: Ralph Boehme (cherry picked from commit 992f39a2c8a58301ceeb965f401e29cd64c5a209) --- diff --git a/libcli/auth/netlogon_creds_cli.c b/libcli/auth/netlogon_creds_cli.c index b23dddc21be..f8b7bc2133e 100644 --- a/libcli/auth/netlogon_creds_cli.c +++ b/libcli/auth/netlogon_creds_cli.c @@ -201,7 +201,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 7fb41872c36..3e401dabe9c 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 50dae9d7f3e..18664e8b91a 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 f28cad527df..a2e1952e434 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",