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)
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;
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;