summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-05-07 17:13:52 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-05-07 17:13:52 +0000
commitae9f37e3a89703df5818584774633b88b7843e83 (patch)
tree1d8978252772a8a222bd43885a0e0a82e9cdfcb7 /src
parentfcd9ba7a0bb539092ad7099101c9085a36f33dfc (diff)
downloadkrb5-ae9f37e3a89703df5818584774633b88b7843e83.tar.gz
krb5-ae9f37e3a89703df5818584774633b88b7843e83.tar.xz
krb5-ae9f37e3a89703df5818584774633b88b7843e83.zip
can't free creds, it is passed in, but we can free the components
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@764 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/ccache/file/fcc_nseq.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/krb5/ccache/file/fcc_nseq.c b/src/lib/krb5/ccache/file/fcc_nseq.c
index 8038ba6de..2826772b8 100644
--- a/src/lib/krb5/ccache/file/fcc_nseq.c
+++ b/src/lib/krb5/ccache/file/fcc_nseq.c
@@ -93,7 +93,19 @@ krb5_fcc_next_cred(id, cursor, creds)
((krb5_fcc_data *) id->data)->fd = -1;
}
lose:
- if (kret != KRB5_OK)
- krb5_free_creds(creds);
+ if (kret != KRB5_OK) {
+ if (creds->client)
+ krb5_free_principal(creds->client);
+ if (creds->server)
+ krb5_free_principal(creds->server);
+ if (creds->keyblock.contents)
+ xfree(creds->keyblock.contents);
+ if (creds->ticket.data)
+ xfree(creds->ticket.data);
+ if (creds->second_ticket.data)
+ xfree(creds->second_ticket.data);
+ if (creds->addresses)
+ krb5_free_address(creds->addresses);
+ }
return kret;
}