From: Stefan Metzmacher Date: Tue, 22 Mar 2022 15:57:57 +0000 (+0100) Subject: s4:kdc: remove unused samba_kdc_entry->entry_ex X-Git-Tag: tevent-0.12.0~327 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=732d9ceedc2a6701c8006cda15ecb315806a5ca7;p=thirdparty%2Fsamba.git s4:kdc: remove unused samba_kdc_entry->entry_ex It will only ever point to an sdb_entry_ex and becomes a stale pointer fast, as sdb_free_entry() called before any talloc_free() can happen (with a destructor still set). Note the talloc parent of samba_kdc_entry is the samba_kdc_db_context longterm context. The next commits will fill samba_kdc_entry_destructor with logic again, but for now remove the unused code. Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- diff --git a/source4/kdc/db-glue.c b/source4/kdc/db-glue.c index ea35024b227..b109c61e2d2 100644 --- a/source4/kdc/db-glue.c +++ b/source4/kdc/db-glue.c @@ -252,11 +252,6 @@ static struct SDBFlags uf2SDBFlags(krb5_context context, uint32_t userAccountCon static int samba_kdc_entry_destructor(struct samba_kdc_entry *p) { - if (p->entry_ex != NULL) { - struct sdb_entry_ex *entry_ex = p->entry_ex; - sdb_free_entry(entry_ex); - } - return 0; } diff --git a/source4/kdc/samba_kdc.h b/source4/kdc/samba_kdc.h index 52f8d4a4221..4a0b4eff22e 100644 --- a/source4/kdc/samba_kdc.h +++ b/source4/kdc/samba_kdc.h @@ -60,7 +60,6 @@ struct samba_kdc_entry { bool is_krbtgt; bool is_rodc; bool is_trust; - void *entry_ex; uint32_t supported_enctypes; NTSTATUS reject_status; }; diff --git a/source4/kdc/sdb_to_hdb.c b/source4/kdc/sdb_to_hdb.c index a682de17e98..8eb4d3afc82 100644 --- a/source4/kdc/sdb_to_hdb.c +++ b/source4/kdc/sdb_to_hdb.c @@ -298,14 +298,6 @@ error: return rc; } -static int samba_kdc_hdb_entry_destructor(struct samba_kdc_entry *p) -{ - hdb_entry *entry_ex = p->entry_ex; - free_hdb_entry(entry_ex); - - return 0; -} - int sdb_entry_ex_to_hdb_entry_ex(krb5_context context, const struct sdb_entry_ex *s, hdb_entry *h) @@ -323,9 +315,6 @@ int sdb_entry_ex_to_hdb_entry_ex(krb5_context context, skdc_entry = talloc_get_type(s->ctx, struct samba_kdc_entry); h->context = skdc_entry; - - talloc_set_destructor(skdc_entry, - samba_kdc_hdb_entry_destructor); } return 0; diff --git a/source4/kdc/sdb_to_kdb.c b/source4/kdc/sdb_to_kdb.c index 16fe7cb0a63..6631721b43b 100644 --- a/source4/kdc/sdb_to_kdb.c +++ b/source4/kdc/sdb_to_kdb.c @@ -312,34 +312,6 @@ static int sdb_entry_ex_to_krb5_db_entry(krb5_context context, return 0; } -static int samba_kdc_kdb_entry_destructor(struct samba_kdc_entry *p) -{ - krb5_db_entry *entry_ex = p->entry_ex; - krb5_error_code ret; - krb5_context context; - - if (entry_ex->e_data != NULL) { - struct samba_kdc_entry *skdc_entry; - - skdc_entry = talloc_get_type(entry_ex->e_data, - struct samba_kdc_entry); - talloc_set_destructor(skdc_entry, NULL); - entry_ex->e_data = NULL; - } - - ret = smb_krb5_init_context_common(&context); - if (ret) { - DBG_ERR("kerberos init context failed (%s)\n", - error_message(ret)); - return ret; - } - - krb5_db_free_principal(context, entry_ex); - krb5_free_context(context); - - return 0; -} - int sdb_entry_ex_to_kdb_entry_ex(krb5_context context, const struct sdb_entry_ex *s, krb5_db_entry *k) @@ -357,9 +329,6 @@ int sdb_entry_ex_to_kdb_entry_ex(krb5_context context, skdc_entry = talloc_get_type(s->ctx, struct samba_kdc_entry); k->e_data = (void *)skdc_entry; - - talloc_set_destructor(skdc_entry, - samba_kdc_kdb_entry_destructor); } return 0;