diff options
Diffstat (limited to 'crypto/heimdal/kdc/kaserver.c')
-rw-r--r-- | crypto/heimdal/kdc/kaserver.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/crypto/heimdal/kdc/kaserver.c b/crypto/heimdal/kdc/kaserver.c index 1a998ee..8694471 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.21 2002/10/21 12:59:41 joda Exp $"); +RCSID("$Id: kaserver.c,v 1.21.2.1 2003/10/06 21:02:35 lha Exp $"); #include <rx.h> @@ -402,6 +402,10 @@ do_authenticate (struct rx_header *hdr, unparse_auth_args (sp, &name, &instance, &start_time, &end_time, &request, &max_seq_len); + if (request.length < 8) { + make_error_reply (hdr, KABADREQUEST, reply); + goto out; + } snprintf (client_name, sizeof(client_name), "%s.%s@%s", name, instance, v4_realm); @@ -600,6 +604,11 @@ do_getticket (struct rx_header *hdr, unparse_getticket_args (sp, &kvno, &auth_domain, &aticket, &name, &instance, ×, &max_seq_len); + if (times.length < 8) { + make_error_reply (hdr, KABADREQUEST, reply); + goto out; + + } snprintf (server_name, sizeof(server_name), "%s.%s@%s", name, instance, v4_realm); |