From: Jeffrey Altman Date: Sat, 4 Nov 2006 23:50:38 +0000 (+0000) Subject: STABLE14-rxkad-server-bad-ticket-part-two-20061103 X-Git-Tag: openafs-stable-1_4_3rc1~79 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=153762ccfa41e07f0f90475b55c68c5786449d1a;p=packages%2Fo%2Fopenafs.git STABLE14-rxkad-server-bad-ticket-part-two-20061103 FIXES 43862 Ensure that tkt_DecodeTicket and rxkad_CheckResponse return the right RXKAD errors for ticket expiration or invalidity. Avoid calling tkt_CheckTimes twice in rxkad_CheckResponse (cherry picked from commit bf5bfc06638b028335ecdc19ce35315195fc6ffe) --- diff --git a/src/rxkad/rxkad_server.c b/src/rxkad/rxkad_server.c index 8756123f0..e2c54385b 100644 --- a/src/rxkad/rxkad_server.c +++ b/src/rxkad/rxkad_server.c @@ -352,11 +352,15 @@ rxkad_CheckResponse(struct rx_securityClass *aobj, client.instance, client.cell, &sessionkey, &host, &start, &end); if (code) - return RXKADBADTICKET; + return code; } code = tkt_CheckTimes(start, end, time(0)); - if (code == -1) + if (code == 0) + return RXKADNOAUTH; + else if (code == -1) return RXKADEXPIRED; + else if (code < -1) + return RXKADBADTICKET; else if (code <= 0) return RXKADBADTICKET; diff --git a/src/rxkad/ticket.c b/src/rxkad/ticket.c index 2dbcce9a5..e8300b976 100644 --- a/src/rxkad/ticket.c +++ b/src/rxkad/ticket.c @@ -148,7 +148,13 @@ tkt_DecodeTicket(char *asecret, afs_int32 ticketLen, if (code) return RXKADBADTICKET; - if (tkt_CheckTimes(*start, *end, time(0)) < -1) + + code = tkt_CheckTimes(*start, *end, time(0)); + if (code == 0) + return RXKADNOAUTH; + else if (code == -1) + return RXKADEXPIRED; + else if (code < -1) return RXKADBADTICKET; return 0;