diff options
Diffstat (limited to 'crypto/heimdal/kdc/kaserver.c')
-rw-r--r-- | crypto/heimdal/kdc/kaserver.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/crypto/heimdal/kdc/kaserver.c b/crypto/heimdal/kdc/kaserver.c index a281c00..7eeff8a 100644 --- a/crypto/heimdal/kdc/kaserver.c +++ b/crypto/heimdal/kdc/kaserver.c @@ -33,7 +33,7 @@ #include "kdc_locl.h" -RCSID("$Id: kaserver.c,v 1.20 2002/09/09 14:03:02 nectar Exp $"); +RCSID("$Id: kaserver.c,v 1.20.2.1 2002/10/21 14:30:51 joda Exp $"); #include <rx.h> @@ -477,6 +477,10 @@ do_authenticate (struct rx_header *hdr, /* life */ max_life = end_time - kdc_time; + /* end_time - kdc_time can sometimes be non-positive due to slight + time skew between client and server. Let's make sure it is postive */ + if(max_life < 1) + max_life = 1; if (client_entry->max_life) max_life = min(max_life, *client_entry->max_life); if (server_entry->max_life) @@ -710,6 +714,10 @@ do_getticket (struct rx_header *hdr, /* life */ max_life = end_time - kdc_time; + /* end_time - kdc_time can sometimes be non-positive due to slight + time skew between client and server. Let's make sure it is postive */ + if(max_life < 1) + max_life = 1; if (krbtgt_entry->max_life) max_life = min(max_life, *krbtgt_entry->max_life); if (server_entry->max_life) |