From 0d38e68dba9dceccadb82549250e83917970004a Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sat, 5 Jul 1997 01:38:12 +0000 Subject: [PATCH] KRB5_RECVAUTH_IGNORE_VERSION git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1967 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/recvauth.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/krb5/recvauth.c b/lib/krb5/recvauth.c index caf812c09..a0e92a1ba 100644 --- a/lib/krb5/recvauth.c +++ b/lib/krb5/recvauth.c @@ -17,8 +17,8 @@ krb5_recvauth(krb5_context context, krb5_ticket **ticket) { krb5_error_code ret; - const char *version = "KRB5_SENDAUTH_V1.0"; - char her_version[19]; /* Size ^ */ + const char *version = KRB5_SENDAUTH_VERSION; + char her_version[sizeof(KRB5_SENDAUTH_VERSION)]; char *her_appl_version; int fd = *((int *)p_fd); u_int32_t len; @@ -26,15 +26,17 @@ krb5_recvauth(krb5_context context, krb5_data data; krb5_flags ap_options; - if (krb5_net_read (context, fd, &len, 4) != 4) - return errno; - len = ntohl(len); - if (len != sizeof(her_version) - || krb5_net_read (context, fd, her_version, len) != len - || strcmp (version, her_version)) { - repl = 1; - krb5_net_write (context, fd, &repl, 1); - return KRB5_SENDAUTH_BADAUTHVERS; + if(!(flags & KRB5_RECVAUTH_IGNORE_VERSION)) { + if (krb5_net_read (context, fd, &len, 4) != 4) + return errno; + len = ntohl(len); + if (len != sizeof(her_version) + || krb5_net_read (context, fd, her_version, len) != len + || strncmp (version, her_version, len)) { + repl = 1; + krb5_net_write (context, fd, &repl, 1); + return KRB5_SENDAUTH_BADAUTHVERS; + } } if (krb5_net_read (context, fd, &len, 4) != 4)