diff options
| author | John Kohl <jtkohl@mit.edu> | 1991-01-08 14:31:51 +0000 |
|---|---|---|
| committer | John Kohl <jtkohl@mit.edu> | 1991-01-08 14:31:51 +0000 |
| commit | 2d16a40826cf8eba37a3b7048ef782d5c49e9d87 (patch) | |
| tree | 56ea15928c8d38bc26f9d83aae42a256c621ebc4 /src | |
| parent | 5bf6f5071fe88e572175f414c2f5a7d2c781ac29 (diff) | |
| download | krb5-2d16a40826cf8eba37a3b7048ef782d5c49e9d87.tar.gz krb5-2d16a40826cf8eba37a3b7048ef782d5c49e9d87.tar.xz krb5-2d16a40826cf8eba37a3b7048ef782d5c49e9d87.zip | |
modify replay cache code to generalize it
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1620 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/krb5/krb/rd_req_dec.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/lib/krb5/krb/rd_req_dec.c b/src/lib/krb5/krb/rd_req_dec.c index 0028ca7dd..4d8c01e13 100644 --- a/src/lib/krb5/krb/rd_req_dec.c +++ b/src/lib/krb5/krb/rd_req_dec.c @@ -155,10 +155,23 @@ krb5_tkt_authent *tktauthent; /* only check rcache if sender has provided one---some services may not be able to use replay caches (such as datagram servers) */ - if (rcache && (retval = krb5_rc_store(rcache, tktauthent))) { - tktauthent->ticket = 0; - clean_authenticator(); - return retval; + if (rcache) { + krb5_donot_replay rep; + + if (retval = krb5_auth_to_rep(tktauthent, &rep)) { + tktauthent->ticket = 0; + clean_authenticator(); + return retval; + } + if (retval = krb5_rc_store(rcache, &rep)) { + xfree(rep.server); + xfree(rep.client); + tktauthent->ticket = 0; + clean_authenticator(); + return retval; + } + xfree(rep.server); + xfree(rep.client); } tktauthent->ticket = 0; |
