From d00feda10dc2ae8415b625a1edb41790b81963e7 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Mon, 16 Aug 1999 12:26:25 +0000 Subject: [PATCH] (proto): be more careful with the return value from krb5_net_read git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6818 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/kf/kfd.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/appl/kf/kfd.c b/appl/kf/kfd.c index 3e3451ade..c6487e9f6 100644 --- a/appl/kf/kfd.c +++ b/appl/kf/kfd.c @@ -146,6 +146,7 @@ proto (int sock, const char *service) krb5_ccache ccache; char ccname[MAXPATHLEN]; struct passwd *pwd; + ssize_t n; status = krb5_auth_con_init (context, &auth_context); if (status) @@ -204,13 +205,19 @@ proto (int sock, const char *service) krb5_data_zero (&data); krb5_data_zero (&packet); - if (krb5_net_read (context, &sock, &net_len, 4) != 4) - syslog_and_die("krb5_net_read: %s",strerror(errno)); + n = krb5_net_read (context, &sock, &net_len, 4); + if (n < 0) + syslog_and_die("krb5_net_read: %s", strerror(errno)); + if (n == 0) + syslog_and_die("EOF in krb5_net_read"); len = ntohl(net_len); krb5_data_alloc (&packet, len); - if (krb5_net_read (context, &sock, packet.data, len) != len) - syslog_and_die("krb5_net_read: %s",strerror(errno)); + n = krb5_net_read (context, &sock, packet.data, len); + if (n < 0) + syslog_and_die("krb5_net_read: %s", strerror(errno)); + if (n == 0) + syslog_and_die("EOF in krb5_net_read"); status = krb5_rd_priv (context, auth_context,