diff options
| author | John Kohl <jtkohl@mit.edu> | 1991-01-16 11:06:42 +0000 |
|---|---|---|
| committer | John Kohl <jtkohl@mit.edu> | 1991-01-16 11:06:42 +0000 |
| commit | fdd1e761886a9b95e4c09464b9cc3f54d0e2342b (patch) | |
| tree | cb73b947ec4fa95c448fa8b5795799c56795a69a /src | |
| parent | e3e09104b3ca3c4c9b524a19c90c0219b5493588 (diff) | |
| download | krb5-fdd1e761886a9b95e4c09464b9cc3f54d0e2342b.tar.gz krb5-fdd1e761886a9b95e4c09464b9cc3f54d0e2342b.tar.xz krb5-fdd1e761886a9b95e4c09464b9cc3f54d0e2342b.zip | |
finish cleanup from conversion to take donot_replay
(don't free things from the argument!)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1632 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/krb5/rcache/rc_dfl.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/lib/krb5/rcache/rc_dfl.c b/src/lib/krb5/rcache/rc_dfl.c index 15382a2f2..a8a9e4f0e 100644 --- a/src/lib/krb5/rcache/rc_dfl.c +++ b/src/lib/krb5/rcache/rc_dfl.c @@ -129,6 +129,19 @@ struct authlist } ; +/* XXX should we use strdup? */ +static char * +strsave(s) +register const char *s; +{ + register char *ret; + + if (ret = malloc(strlen(s)+1)) { + (void) strcpy(ret, s); + return ret; + } + return 0; +} /* of course, list is backwards from file */ /* hash could be forwards since we have to search on match, but naaaah */ @@ -159,7 +172,16 @@ krb5_donot_replay *rep; ta->na = t->a; t->a = ta; ta->nh = t->h[rephash]; t->h[rephash] = ta; ta->rep = *rep; - + if (!(ta->rep.client = strsave(rep->client))) { + FREE(ta); + return CMP_MALLOC; + } + if (!(ta->rep.server = strsave(rep->server))) { + FREE(ta->rep.client); + FREE(ta); + return CMP_MALLOC; + } + return CMP_HOHUM; } @@ -333,9 +355,9 @@ krb5_donot_replay *rep; switch(store(id,rep)) { - case CMP_MALLOC: FREE(rep->client); FREE(rep->server); FREE(rep); + case CMP_MALLOC: return KRB5_RC_MALLOC; break; - case CMP_REPLAY: FREE(rep->client); FREE(rep->server); FREE(rep); + case CMP_REPLAY: return KRB5KRB_AP_ERR_REPEAT; break; case 0: break; default: /* wtf? */ ; |
