]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:kdc: remove unused samba_kdc_entry->entry_ex
authorStefan Metzmacher <metze@samba.org>
Tue, 22 Mar 2022 15:57:57 +0000 (16:57 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 24 Mar 2022 09:19:33 +0000 (09:19 +0000)
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 <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/kdc/db-glue.c
source4/kdc/samba_kdc.h
source4/kdc/sdb_to_hdb.c
source4/kdc/sdb_to_kdb.c

index ea35024b22751ba1e28ad46847160dc113bc0e0a..b109c61e2d2e6bc59e58273fbc72bed0a07f5717 100644 (file)
@@ -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;
 }
 
index 52f8d4a4221c7b7de1b0bcf832dcf73d20c37b0e..4a0b4eff22e9dd035ae7af8cc801651110ecd0f3 100644 (file)
@@ -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;
 };
index a682de17e981d0d86011df63afdad9b9f195cb76..8eb4d3afc826fed8da119aaed71f225d2afd0914 100644 (file)
@@ -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;
index 16fe7cb0a6339ec444b5b24225947d5e10022b5e..6631721b43badc06a6a3ce6609705447a1c6b6d6 100644 (file)
@@ -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;