summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/lib/krb5/read_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/lib/krb5/read_message.c')
-rw-r--r--crypto/heimdal/lib/krb5/read_message.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/crypto/heimdal/lib/krb5/read_message.c b/crypto/heimdal/lib/krb5/read_message.c
index 124499a..5e03507 100644
--- a/crypto/heimdal/lib/krb5/read_message.c
+++ b/crypto/heimdal/lib/krb5/read_message.c
@@ -33,16 +33,18 @@
#include "krb5_locl.h"
-RCSID("$Id: read_message.c,v 1.8 2001/05/14 06:14:51 assar Exp $");
+RCSID("$Id: read_message.c 21750 2007-07-31 20:41:25Z lha $");
-krb5_error_code
+krb5_error_code KRB5_LIB_FUNCTION
krb5_read_message (krb5_context context,
krb5_pointer p_fd,
krb5_data *data)
{
krb5_error_code ret;
- u_int32_t len;
- u_int8_t buf[4];
+ uint32_t len;
+ uint8_t buf[4];
+
+ krb5_data_zero(data);
ret = krb5_net_read (context, p_fd, buf, 4);
if(ret == -1) {
@@ -51,13 +53,15 @@ krb5_read_message (krb5_context context,
return ret;
}
if(ret < 4) {
- data->length = 0;
+ krb5_clear_error_string(context);
return HEIM_ERR_EOF;
}
len = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3];
ret = krb5_data_alloc (data, len);
- if (ret)
+ if (ret) {
+ krb5_clear_error_string(context);
return ret;
+ }
if (krb5_net_read (context, p_fd, data->data, len) != len) {
ret = errno;
krb5_data_free (data);
@@ -67,7 +71,7 @@ krb5_read_message (krb5_context context,
return 0;
}
-krb5_error_code
+krb5_error_code KRB5_LIB_FUNCTION
krb5_read_priv_message(krb5_context context,
krb5_auth_context ac,
krb5_pointer p_fd,
@@ -84,7 +88,7 @@ krb5_read_priv_message(krb5_context context,
return ret;
}
-krb5_error_code
+krb5_error_code KRB5_LIB_FUNCTION
krb5_read_safe_message(krb5_context context,
krb5_auth_context ac,
krb5_pointer p_fd,
OpenPOWER on IntegriCloud