From 2740149d18c9def9cb8d1af25c465e14cd123dc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sun, 2 Apr 2006 02:10:03 +0000 Subject: [PATCH] (wrap*): Reset output_buffer on error. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16951 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/krb5/wrap.c | 14 ++++++++++++++ lib/gssapi/wrap.c | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/lib/gssapi/krb5/wrap.c b/lib/gssapi/krb5/wrap.c index 80801926e..0632aca8d 100644 --- a/lib/gssapi/krb5/wrap.c +++ b/lib/gssapi/krb5/wrap.c @@ -174,6 +174,7 @@ wrap_des output_message_buffer->length = total_len; output_message_buffer->value = malloc (total_len); if (output_message_buffer->value == NULL) { + output_message_buffer->length = 0; *minor_status = ENOMEM; return GSS_S_FAILURE; } @@ -298,6 +299,7 @@ wrap_des3 output_message_buffer->length = total_len; output_message_buffer->value = malloc (total_len); if (output_message_buffer->value == NULL) { + output_message_buffer->length = 0; *minor_status = ENOMEM; return GSS_S_FAILURE; } @@ -332,6 +334,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -347,6 +351,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -376,6 +382,8 @@ wrap_des3 &crypto); if (ret) { free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -394,6 +402,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -419,6 +429,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -428,6 +440,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } diff --git a/lib/gssapi/wrap.c b/lib/gssapi/wrap.c index 80801926e..0632aca8d 100644 --- a/lib/gssapi/wrap.c +++ b/lib/gssapi/wrap.c @@ -174,6 +174,7 @@ wrap_des output_message_buffer->length = total_len; output_message_buffer->value = malloc (total_len); if (output_message_buffer->value == NULL) { + output_message_buffer->length = 0; *minor_status = ENOMEM; return GSS_S_FAILURE; } @@ -298,6 +299,7 @@ wrap_des3 output_message_buffer->length = total_len; output_message_buffer->value = malloc (total_len); if (output_message_buffer->value == NULL) { + output_message_buffer->length = 0; *minor_status = ENOMEM; return GSS_S_FAILURE; } @@ -332,6 +334,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -347,6 +351,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -376,6 +382,8 @@ wrap_des3 &crypto); if (ret) { free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -394,6 +402,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -419,6 +429,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; } @@ -428,6 +440,8 @@ wrap_des3 if (ret) { gssapi_krb5_set_error_string (); free (output_message_buffer->value); + output_message_buffer->length = 0; + output_message_buffer->value = NULL; *minor_status = ret; return GSS_S_FAILURE; }