diff --git a/kadmin/mod.c b/kadmin/mod.c index cbf9e7fba..b37d36355 100644 --- a/kadmin/mod.c +++ b/kadmin/mod.c @@ -77,6 +77,7 @@ do_mod_entry(krb5_principal principal, void *data) krb5_principal p; size_t size; + memset(&ext, 0, sizeof(ext)); ext.mandatory = FALSE; ext.data.element = choice_HDB_extension_data_allowed_to_delegate_to; ext.data.u.allowed_to_delegate_to.len = 1; @@ -90,6 +91,7 @@ do_mod_entry(krb5_principal principal, void *data) ASN1_MALLOC_ENCODE(HDB_extension, buf.data, buf.length, &ext, &size, ret); + free_HDB_extension(&ext); if (ret) abort(); if (buf.length != size) @@ -101,6 +103,7 @@ do_mod_entry(krb5_principal principal, void *data) tl->tl_data_length = buf.length; tl->tl_data_contents = buf.data; + princ.n_tl_data++; ptl = &princ.tl_data; while (*ptl != NULL) ptl = &(*ptl)->tl_data_next; diff --git a/kuser/kgetcred.c b/kuser/kgetcred.c index dc5b85bf1..b610db5fd 100644 --- a/kuser/kgetcred.c +++ b/kuser/kgetcred.c @@ -207,5 +207,7 @@ main(int argc, char **argv) } krb5_free_cred_contents(context, out); + krb5_get_creds_opt_free(context, opt); + return 0; } diff --git a/lib/kadm5/ent_setup.c b/lib/kadm5/ent_setup.c index 0a5c91f8d..4b5c97cfe 100644 --- a/lib/kadm5/ent_setup.c +++ b/lib/kadm5/ent_setup.c @@ -69,7 +69,6 @@ perform_tl_data(krb5_context context, hdb_entry_ex *ent, const krb5_tl_data *tl_data) { - HDB_extension ext; kadm5_ret_t ret = 0; if (tl_data->tl_data_type == KRB5_TL_PASSWORD) { @@ -94,6 +93,8 @@ perform_tl_data(krb5_context context, ret = hdb_entry_set_pw_change_time(context, &ent->entry, t); } else if (tl_data->tl_data_type == KRB5_TL_EXTENSION) { + HDB_extension ext; + ret = decode_HDB_extension(tl_data->tl_data_contents, tl_data->tl_data_length, &ext, @@ -102,7 +103,7 @@ perform_tl_data(krb5_context context, return KADM5_BAD_TL_TYPE; ret = hdb_replace_extension(context, &ent->entry, &ext); - + free_HDB_extension(&ext); } else { return KADM5_BAD_TL_TYPE; }