(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:
@@ -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);
|
||||||
return errno;
|
if (n < 0)
|
||||||
|
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);
|
||||||
return errno;
|
if (n < 0)
|
||||||
|
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;
|
||||||
|
Reference in New Issue
Block a user