diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/krb5/krb/srv_rcache.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/lib/krb5/krb/srv_rcache.c b/src/lib/krb5/krb/srv_rcache.c index 9da6d45ff0..7d6b68a7ee 100644 --- a/src/lib/krb5/krb/srv_rcache.c +++ b/src/lib/krb5/krb/srv_rcache.c @@ -71,21 +71,13 @@ krb5_get_server_rcache(krb5_context context, const krb5_data *piece, return ENOMEM; retval = krb5_rc_resolve_full(context, &rcache, cachename); - if (retval) { - rcache = 0; + if (retval) goto cleanup; - } - /* - * First try to recover the replay cache; if that doesn't work, - * initialize it. - */ - retval = krb5_rc_recover_or_initialize(context, rcache, context->clockskew); - if (retval) { - krb5_rc_close(context, rcache); - rcache = 0; + retval = krb5_rc_recover_or_initialize(context, rcache, + context->clockskew); + if (retval) goto cleanup; - } *rcptr = rcache; rcache = 0; @@ -93,7 +85,7 @@ krb5_get_server_rcache(krb5_context context, const krb5_data *piece, cleanup: if (rcache) - free(rcache); + krb5_rc_close(context, rcache); if (cachename) free(cachename); return retval; |