From fdab930243812b531ae50065097d49866261b39d Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 18 Oct 2004 05:59:07 +0000 Subject: [PATCH] STABLE12-kaanswertoolong-20040420 when determining whether or not the ticket len is too long for the receiver to accept we want to compare against the actual ticket length and not MAXKTCTICKETLEN which is what is used when sizeof(ktc_ticketAnswer) is used for comparison. (cherry picked from commit 37d106e228998d58cfe3427ba9bdae66e464c042) --- src/kauth/kaprocs.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/kauth/kaprocs.c b/src/kauth/kaprocs.c index b20d5a994..0c2c1b7ef 100644 --- a/src/kauth/kaprocs.c +++ b/src/kauth/kaprocs.c @@ -928,7 +928,8 @@ PrepareTicketAnswer afs_int32 cksum; code = KAANSWERTOOLONG; - if (oanswer->MaxSeqLen < sizeof(struct ka_ticketAnswer) - 5*MAXKTCNAMELEN) + if (oanswer->MaxSeqLen < + sizeof(struct ka_ticketAnswer) - 5 * MAXKTCNAMELEN - MAXKTCTICKETLEN + ticketLen) return code; answer = (struct ka_ticketAnswer *)oanswer->SeqBody; @@ -1762,8 +1763,9 @@ static afs_int32 GetTicket (version, call, kvno, authDomain, aticket, switch (version) { case 0: code = KAANSWERTOOLONG; - if (oanswer->MaxSeqLen < - sizeof(struct ka_getTicketAnswer) - 5*MAXKTCNAMELEN) goto abort; + if (oanswer->MaxSeqLen < sizeof(struct ka_getTicketAnswer) - 5 + * MAXKTCNAMELEN - MAXKTCTICKETLEN + ticketLen) + goto abort; answer = (struct ka_getTicketAnswer *)oanswer->SeqBody; memcpy(&answer->sessionKey, &sessionKey, sizeof(struct ktc_encryptionKey)); -- 2.39.5