diff --git a/lib/kadm5/marshall.c b/lib/kadm5/marshall.c index 0583b3eda..9d24233ba 100644 --- a/lib/kadm5/marshall.c +++ b/lib/kadm5/marshall.c @@ -387,9 +387,14 @@ ret_principal_ent(krb5_storage *sp, ret = ENOMEM; goto out; } - CHECK(kadm5_ret_tl_data(sp, tp)); - tp->tl_data_next = princ->tl_data; - princ->tl_data = tp; + ret = kadm5_ret_tl_data(sp, tp); + if (ret == 0) { + tp->tl_data_next = princ->tl_data; + princ->tl_data = tp; + } else { + free(tp); + goto out; + } } }