(krb5_recvauth): only look at errno if krb5_net_read actually returns

-1


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6828 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1999-08-16 12:46:22 +00:00
parent 9b9c51c614
commit 5381567d9b

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan * Copyright (c) 1997 - 1999 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved. * All rights reserved.
* *
@@ -62,6 +62,7 @@ krb5_recvauth(krb5_context context,
u_char repl; u_char repl;
krb5_data data; krb5_data data;
krb5_flags ap_options; krb5_flags ap_options;
ssize_t n;
/* /*
* If there are no addresses in auth_context, get them from `fd'. * If there are no addresses in auth_context, get them from `fd'.
@@ -80,8 +81,11 @@ krb5_recvauth(krb5_context context,
return ret; return ret;
if(!(flags & KRB5_RECVAUTH_IGNORE_VERSION)) { if(!(flags & KRB5_RECVAUTH_IGNORE_VERSION)) {
if (krb5_net_read (context, p_fd, &len, 4) != 4) n = krb5_net_read (context, p_fd, &len, 4);
if (n < 0)
return errno; return errno;
if (n == 0)
return KRB5_SENDAUTH_BADAUTHVERS;
len = ntohl(len); len = ntohl(len);
if (len != sizeof(her_version) if (len != sizeof(her_version)
|| krb5_net_read (context, p_fd, her_version, len) != len || krb5_net_read (context, p_fd, her_version, len) != len
@@ -92,8 +96,11 @@ krb5_recvauth(krb5_context context,
} }
} }
if (krb5_net_read (context, p_fd, &len, 4) != 4) n = krb5_net_read (context, p_fd, &len, 4);
if (n < 0)
return errno; return errno;
if (n == 0)
return KRB5_SENDAUTH_BADAPPLVERS;
len = ntohl(len); len = ntohl(len);
if (len != strlen(appl_version) + 1) { if (len != strlen(appl_version) + 1) {
repl = 2; repl = 2;