diff options
Diffstat (limited to 'crypto/heimdal/lib/krb5/read_message.c')
-rw-r--r-- | crypto/heimdal/lib/krb5/read_message.c | 20 |
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, |