From 785e9b1fdf481c2e5f4d6ed5c92f5babfaca5801 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 19 Jan 1997 06:26:05 +0000 Subject: [PATCH] (krb5_get_credentials): Check for creds in cc before getting new ones. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1177 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/get_cred.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/krb5/get_cred.c b/lib/krb5/get_cred.c index cabf93757..7f90714a0 100644 --- a/lib/krb5/get_cred.c +++ b/lib/krb5/get_cred.c @@ -68,6 +68,17 @@ krb5_get_credentials (krb5_context context, * XXX - Check if cred found in ccache */ + *out_creds = malloc(sizeof(**out_creds)); + memset(*out_creds, 0, sizeof(**out_creds)); + + err = krb5_cc_retrieve_cred(context, ccache, 0, in_creds, *out_creds); + if (err == 0) + return err; + else if (err != KRB5_CC_END) { + free(*out_creds); + return err; + } + /* * Prepare Tgs_Req. */ @@ -194,8 +205,6 @@ krb5_get_credentials (krb5_context context, len = decode_TGS_REP(resp.data, resp.length, &rep.part1); if(len < 0) return ASN1_PARSE_ERROR; - *out_creds = malloc(sizeof(**out_creds)); - memset(*out_creds, 0, sizeof(**out_creds)); err = extract_ticket(context, &rep, *out_creds, key_proc, key, NULL, NULL); if(err) return err;