Try to not leak memory.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18823 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-10-22 10:15:53 +00:00
parent fa6edba40b
commit 9478fbdcac
3 changed files with 8 additions and 2 deletions

View File

@@ -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;

View File

@@ -207,5 +207,7 @@ main(int argc, char **argv)
}
krb5_free_cred_contents(context, out);
krb5_get_creds_opt_free(context, opt);
return 0;
}

View File

@@ -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;
}