The branch, master has been updated via 6cbd7d1a32c s4:param: make sure secrets_db_connect() no longer creates on empty secrets.ldb via 0344b92b652 s4:param: make use of secrets_db_create() in provision_store_self_join() via 32f75621479 s4:param: add secrets_db_create() helper function via c80a51c69d6 libcli/nbt: avoid talloc_reference() in nbt_name_*_send() via 87ae154ef99 s4:rpc_server/lsa: remove some useless talloc_reference() calls from d459ca04fc4 libcli:smb: Improve check for gnutls_aead_cipher_(en|de)cryptv2
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 6cbd7d1a32cc7ccfb8d06eacdcade41d96b54519 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Feb 4 16:16:48 2020 +0100 s4:param: make sure secrets_db_connect() no longer creates on empty secrets.ldb Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): Andreas Schneider <a...@cryptomilk.org> Autobuild-Date(master): Wed Feb 5 10:13:02 UTC 2020 on sn-devel-184 commit 0344b92b652075f5679222504fe029b105f46f7b Author: Stefan Metzmacher <me...@samba.org> Date: Tue Feb 4 16:15:53 2020 +0100 s4:param: make use of secrets_db_create() in provision_store_self_join() Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit 32f756214791dd78dd7b69bd8c914eb58d505476 Author: Stefan Metzmacher <me...@samba.org> Date: Tue Feb 4 16:14:55 2020 +0100 s4:param: add secrets_db_create() helper function Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit c80a51c69d6ae849c859e58aae85c7c98c927963 Author: Stefan Metzmacher <me...@samba.org> Date: Thu Aug 8 18:11:23 2013 +0200 libcli/nbt: avoid talloc_reference() in nbt_name_*_send() Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> commit 87ae154ef99f0b01a8be1d2c1a8847814a2b3d4c Author: Stefan Metzmacher <me...@samba.org> Date: Tue Feb 4 16:09:46 2020 +0100 s4:rpc_server/lsa: remove some useless talloc_reference() calls Signed-off-by: Stefan Metzmacher <me...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> ----------------------------------------------------------------------- Summary of changes: libcli/nbt/nbtsocket.c | 8 ++++---- source4/param/provision.c | 4 ++-- source4/param/secrets.c | 12 +++++++++++- source4/param/secrets.h | 2 ++ source4/rpc_server/lsa/dcesrv_lsa.c | 20 ++++++++++---------- 5 files changed, 29 insertions(+), 17 deletions(-) Changeset truncated at 500 lines: diff --git a/libcli/nbt/nbtsocket.c b/libcli/nbt/nbtsocket.c index 38a2192fbcd..f682b233fd1 100644 --- a/libcli/nbt/nbtsocket.c +++ b/libcli/nbt/nbtsocket.c @@ -387,8 +387,8 @@ struct nbt_name_request *nbt_name_request_send(TALLOC_CTX *mem_ctx, req->is_reply = false; req->timeout = timeout; req->num_retries = retries; - req->dest = dest; - if (talloc_reference(req, dest) == NULL) goto failed; + req->dest = socket_address_copy(req, dest); + if (req->dest == NULL) goto failed; /* we select a random transaction id unless the user supplied one */ if (request->name_trn_id == 0) { @@ -446,8 +446,8 @@ _PUBLIC_ NTSTATUS nbt_name_reply_send(struct nbt_name_socket *nbtsock, NT_STATUS_HAVE_NO_MEMORY(req); req->nbtsock = nbtsock; - req->dest = dest; - if (talloc_reference(req, dest) == NULL) goto failed; + req->dest = socket_address_copy(req, dest); + if (req->dest == NULL) goto failed; req->state = NBT_REQUEST_SEND; req->is_reply = true; diff --git a/source4/param/provision.c b/source4/param/provision.c index 395516dc3ae..ad972bbc2dc 100644 --- a/source4/param/provision.c +++ b/source4/param/provision.c @@ -345,8 +345,8 @@ NTSTATUS provision_store_self_join(TALLOC_CTX *mem_ctx, struct loadparm_context goto out; } - /* Open the secrets database */ - ldb = secrets_db_connect(tmp_mem, lp_ctx); + /* Create/Open the secrets database */ + ldb = secrets_db_create(tmp_mem, lp_ctx); if (!ldb) { *error_string = talloc_asprintf(mem_ctx, diff --git a/source4/param/secrets.c b/source4/param/secrets.c index 987408829ea..1df8620f53a 100644 --- a/source4/param/secrets.c +++ b/source4/param/secrets.c @@ -32,6 +32,16 @@ #include "librpc/gen_ndr/ndr_security.h" #include "dsdb/samdb/samdb.h" +/** + create or connect to the secrets ldb +*/ +struct ldb_context *secrets_db_create(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx) +{ + return ldb_wrap_connect(mem_ctx, NULL, lp_ctx, "secrets.ldb", + NULL, NULL, 0); +} + /** connect to the secrets ldb */ @@ -39,7 +49,7 @@ struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx) { return ldb_wrap_connect(mem_ctx, NULL, lp_ctx, "secrets.ldb", - NULL, NULL, 0); + NULL, NULL, LDB_FLG_DONT_CREATE_DB); } /** diff --git a/source4/param/secrets.h b/source4/param/secrets.h index 015ea120041..1d2dc2b93a4 100644 --- a/source4/param/secrets.h +++ b/source4/param/secrets.h @@ -37,6 +37,8 @@ struct ldb_context; bool randseed_init(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx); +struct ldb_context *secrets_db_create(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx); struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx); struct dom_sid *secrets_get_domain_sid(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, diff --git a/source4/rpc_server/lsa/dcesrv_lsa.c b/source4/rpc_server/lsa/dcesrv_lsa.c index 8cd983c7a18..8333cb149b6 100644 --- a/source4/rpc_server/lsa/dcesrv_lsa.c +++ b/source4/rpc_server/lsa/dcesrv_lsa.c @@ -3230,7 +3230,6 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL struct lsa_secret_state *secret_state; struct dcesrv_handle *handle; struct ldb_message **msgs, *msg; - struct ldb_context *samdb = NULL; const char *attrs[] = { NULL }; @@ -3291,8 +3290,8 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL * logging to report the remote users details, rather than the * system users details. */ - samdb = dcesrv_samdb_connect_as_system(mem_ctx, dce_call); - secret_state->sam_ldb = talloc_reference(secret_state, samdb); + secret_state->sam_ldb = + dcesrv_samdb_connect_as_system(secret_state, dce_call); NT_STATUS_HAVE_NO_MEMORY(secret_state->sam_ldb); /* search for the secret record */ @@ -3326,8 +3325,8 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL return NT_STATUS_INVALID_PARAMETER; } - secret_state->sam_ldb = talloc_reference(secret_state, - secrets_db_connect(mem_ctx, dce_call->conn->dce_ctx->lp_ctx)); + secret_state->sam_ldb = secrets_db_connect(secret_state, + dce_call->conn->dce_ctx->lp_ctx); NT_STATUS_HAVE_NO_MEMORY(secret_state->sam_ldb); /* search for the secret record */ @@ -3396,7 +3395,6 @@ static NTSTATUS dcesrv_lsa_OpenSecret(struct dcesrv_call_state *dce_call, TALLOC struct lsa_secret_state *secret_state; struct dcesrv_handle *handle; struct ldb_message **msgs; - struct ldb_context *samdb = NULL; const char *attrs[] = { NULL }; @@ -3439,8 +3437,9 @@ static NTSTATUS dcesrv_lsa_OpenSecret(struct dcesrv_call_state *dce_call, TALLOC * logging to report the remote users details, rather than the * system users details. */ - samdb = dcesrv_samdb_connect_as_system(mem_ctx, dce_call); - secret_state->sam_ldb = talloc_reference(secret_state, samdb); + secret_state->sam_ldb = + dcesrv_samdb_connect_as_system(secret_state, dce_call); + NT_STATUS_HAVE_NO_MEMORY(secret_state->sam_ldb); secret_state->global = true; if (strlen(name) < 1) { @@ -3463,8 +3462,9 @@ static NTSTATUS dcesrv_lsa_OpenSecret(struct dcesrv_call_state *dce_call, TALLOC } } else { secret_state->global = false; - secret_state->sam_ldb = talloc_reference(secret_state, - secrets_db_connect(mem_ctx, dce_call->conn->dce_ctx->lp_ctx)); + secret_state->sam_ldb = secrets_db_connect(secret_state, + dce_call->conn->dce_ctx->lp_ctx); + NT_STATUS_HAVE_NO_MEMORY(secret_state->sam_ldb); name = r->in.name.string; if (strlen(name) < 1) { -- Samba Shared Repository