(krb5_rd_safe): fix argument to krb5_data_zero, handle message size = 0

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17057 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-04-12 16:20:03 +00:00
parent 766c132ea1
commit c3e1233f63

View File

@@ -93,8 +93,8 @@ krb5_rd_safe(krb5_context context,
KRB_SAFE safe; KRB_SAFE safe;
size_t len; size_t len;
if (outdata) if (outbuf)
krb5_data_zero(outdata); krb5_data_zero(outbuf);
if ((auth_context->flags & if ((auth_context->flags &
(KRB5_AUTH_CONTEXT_RET_TIME | KRB5_AUTH_CONTEXT_RET_SEQUENCE)) && (KRB5_AUTH_CONTEXT_RET_TIME | KRB5_AUTH_CONTEXT_RET_SEQUENCE)) &&
@@ -184,13 +184,13 @@ krb5_rd_safe(krb5_context context,
if (ret) if (ret)
goto failure; goto failure;
outbuf->length = safe.safe_body.user_data.length;
outbuf->data = malloc(outbuf->length); outbuf->data = malloc(outbuf->length);
if (outbuf->data == NULL) { if (outbuf->data == NULL && outbuf->length != 0) {
ret = ENOMEM; ret = ENOMEM;
krb5_set_error_string (context, "malloc: out of memory"); krb5_set_error_string (context, "malloc: out of memory");
goto failure; goto failure;
} }
outbuf->length = safe.safe_body.user_data.length;
memcpy (outbuf->data, safe.safe_body.user_data.data, outbuf->length); memcpy (outbuf->data, safe.safe_body.user_data.data, outbuf->length);
if ((auth_context->flags & if ((auth_context->flags &