summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1994-06-02 16:39:11 +0000
committerTheodore Tso <tytso@mit.edu>1994-06-02 16:39:11 +0000
commit0e909c8a1f829c4fc6d1f8238758165348607b47 (patch)
tree1f25d2670788c9f937223183df7ba68f9b8eaac1 /src
parent0898f4ad12793bd0e982185622828d13d872c85c (diff)
downloadkrb5-0e909c8a1f829c4fc6d1f8238758165348607b47.tar.gz
krb5-0e909c8a1f829c4fc6d1f8238758165348607b47.tar.xz
krb5-0e909c8a1f829c4fc6d1f8238758165348607b47.zip
Make sure the old contents of the creds structure are freed out before
they are replaced. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@3668 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/krb/get_creds.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/krb5/krb/get_creds.c b/src/lib/krb5/krb/get_creds.c
index 5126b06ce..33c05386c 100644
--- a/src/lib/krb5/krb/get_creds.c
+++ b/src/lib/krb5/krb/get_creds.c
@@ -56,7 +56,7 @@ krb5_creds *creds;
{
krb5_error_code retval, rv2;
krb5_creds **tgts;
- krb5_creds mcreds;
+ krb5_creds mcreds, ncreds;
krb5_flags fields;
if (!creds || !creds->server || !creds->client)
@@ -82,7 +82,11 @@ krb5_creds *creds;
return KRB5_NO_2ND_TKT;
}
- retval = krb5_cc_retrieve_cred(ccache, fields, &mcreds, creds);
+ retval = krb5_cc_retrieve_cred(ccache, fields, &mcreds, &ncreds);
+ if (retval == 0) {
+ krb5_free_cred_contents(creds);
+ *creds = ncreds;
+ }
if (retval != KRB5_CC_NOTFOUND || options & KRB5_GC_CACHED)
return retval;