check return value from krb5_decrypt_iov_ivec

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24129 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2008-12-11 05:04:39 +00:00
parent 76f849a64a
commit bb8485b49c

View File

@@ -103,7 +103,6 @@ _gk_wrap_iov(OM_uint32 * minor_status,
gss_iov_buffer_desc *iov)
{
gsskrb5_ctx ctx = (gsskrb5_ctx) context_handle;
krb5_crypto crypto = NULL;
krb5_context context;
OM_uint32 major_status, junk;
krb5_crypto_iov *data;
@@ -135,7 +134,7 @@ _gk_wrap_iov(OM_uint32 * minor_status,
usage = KRB5_KU_USAGE_INITIATOR_SIGN;
}
*minor_status = krb5_encrypt_iov_ivec(context, crypto, usage,
*minor_status = krb5_encrypt_iov_ivec(context, ctx->crypto, usage,
data, iov_count, NULL);
free(data);
if (major_status != GSS_S_COMPLETE) {
@@ -156,8 +155,8 @@ _gk_unwrap_iov(OM_uint32 *minor_status,
gss_iov_buffer_desc *iov)
{
gsskrb5_ctx ctx = (gsskrb5_ctx) context_handle;
krb5_crypto crypto = NULL;
krb5_context context;
krb5_error_code ret;
OM_uint32 major_status, junk;
krb5_crypto_iov *data;
unsigned usage;
@@ -188,12 +187,13 @@ _gk_unwrap_iov(OM_uint32 *minor_status,
usage = KRB5_KU_USAGE_ACCEPTOR_SIGN;
}
*minor_status = krb5_decrypt_iov_ivec(context, crypto, usage,
ret = krb5_decrypt_iov_ivec(context, ctx->crypto, usage,
data, iov_count, NULL);
free(data);
if (major_status != GSS_S_COMPLETE) {
if (ret) {
*minor_status = ret;
gss_release_iov_buffer(&junk, iov_count, iov);
return major_status;
return GSS_S_FAILURE;
}
*minor_status = 0;
@@ -208,8 +208,8 @@ _gk_wrap_iov_length(OM_uint32 * minor_status,
int iov_count,
gss_iov_buffer_desc *iov)
{
gsskrb5_ctx ctx = (gsskrb5_ctx) context_handle;
krb5_context context;
krb5_crypto crypto = NULL;
unsigned int i;
size_t size;
size_t *padding = NULL;
@@ -226,12 +226,12 @@ _gk_wrap_iov_length(OM_uint32 * minor_status,
break;
case GSS_IOV_BUFFER_TYPE_HEADER:
iov[i].buffer.length =
krb5_crypto_length(context, crypto, KRB5_CRYPTO_TYPE_HEADER);
krb5_crypto_length(context, ctx->crypto, KRB5_CRYPTO_TYPE_HEADER);
size += iov[i].buffer.length;
break;
case GSS_IOV_BUFFER_TYPE_TRAILER:
iov[i].buffer.length =
krb5_crypto_length(context, crypto, KRB5_CRYPTO_TYPE_TRAILER);
krb5_crypto_length(context, ctx->crypto, KRB5_CRYPTO_TYPE_TRAILER);
size += iov[i].buffer.length;
break;
case GSS_IOV_BUFFER_TYPE_PADDING:
@@ -250,7 +250,8 @@ _gk_wrap_iov_length(OM_uint32 * minor_status,
}
}
if (padding) {
size_t pad = krb5_crypto_length(context, crypto, KRB5_CRYPTO_TYPE_PADDING);
size_t pad = krb5_crypto_length(context, ctx->crypto,
KRB5_CRYPTO_TYPE_PADDING);
if (pad > 1) {
*padding = pad - (size % pad);
if (*padding == pad)