aboutsummaryrefslogtreecommitdiff
path: root/lib/gssapi/krb5/cfx.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gssapi/krb5/cfx.c')
-rw-r--r--lib/gssapi/krb5/cfx.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/lib/gssapi/krb5/cfx.c b/lib/gssapi/krb5/cfx.c
index 8d806f9fbf1c..cb9ea773bbb5 100644
--- a/lib/gssapi/krb5/cfx.c
+++ b/lib/gssapi/krb5/cfx.c
@@ -276,11 +276,7 @@ _gk_verify_buffers(OM_uint32 *minor_status,
/*
* In DCE style mode we reject having a padding or trailer buffer
*/
- if (padding) {
- *minor_status = EINVAL;
- return GSS_S_FAILURE;
- }
- if (trailer) {
+ if (padding || trailer) {
*minor_status = EINVAL;
return GSS_S_FAILURE;
}
@@ -505,8 +501,8 @@ _gssapi_wrap_cfx_iov(OM_uint32 *minor_status,
krb5_auth_con_getlocalseqnumber(context,
ctx->auth_context,
&seq_number);
- _gsskrb5_encode_be_om_uint32(0, &token->SND_SEQ[0]);
- _gsskrb5_encode_be_om_uint32(seq_number, &token->SND_SEQ[4]);
+ _gss_mg_encode_be_uint32(0, &token->SND_SEQ[0]);
+ _gss_mg_encode_be_uint32(seq_number, &token->SND_SEQ[4]);
krb5_auth_con_setlocalseqnumber(context,
ctx->auth_context,
++seq_number);
@@ -817,8 +813,8 @@ _gssapi_unwrap_cfx_iov(OM_uint32 *minor_status,
/*
* Check sequence number
*/
- _gsskrb5_decode_be_om_uint32(&token->SND_SEQ[0], &seq_number_hi);
- _gsskrb5_decode_be_om_uint32(&token->SND_SEQ[4], &seq_number_lo);
+ _gss_mg_decode_be_uint32(&token->SND_SEQ[0], &seq_number_hi);
+ _gss_mg_decode_be_uint32(&token->SND_SEQ[4], &seq_number_lo);
if (seq_number_hi) {
/* no support for 64-bit sequence numbers */
*minor_status = ERANGE;
@@ -1271,8 +1267,8 @@ OM_uint32 _gssapi_wrap_cfx(OM_uint32 *minor_status,
krb5_auth_con_getlocalseqnumber(context,
ctx->auth_context,
&seq_number);
- _gsskrb5_encode_be_om_uint32(0, &token->SND_SEQ[0]);
- _gsskrb5_encode_be_om_uint32(seq_number, &token->SND_SEQ[4]);
+ _gss_mg_encode_be_uint32(0, &token->SND_SEQ[0]);
+ _gss_mg_encode_be_uint32(seq_number, &token->SND_SEQ[4]);
krb5_auth_con_setlocalseqnumber(context,
ctx->auth_context,
++seq_number);
@@ -1458,8 +1454,8 @@ OM_uint32 _gssapi_unwrap_cfx(OM_uint32 *minor_status,
/*
* Check sequence number
*/
- _gsskrb5_decode_be_om_uint32(&token->SND_SEQ[0], &seq_number_hi);
- _gsskrb5_decode_be_om_uint32(&token->SND_SEQ[4], &seq_number_lo);
+ _gss_mg_decode_be_uint32(&token->SND_SEQ[0], &seq_number_hi);
+ _gss_mg_decode_be_uint32(&token->SND_SEQ[4], &seq_number_lo);
if (seq_number_hi) {
/* no support for 64-bit sequence numbers */
*minor_status = ERANGE;
@@ -1623,7 +1619,10 @@ OM_uint32 _gssapi_mic_cfx(OM_uint32 *minor_status,
return GSS_S_FAILURE;
}
- memcpy(buf, message_buffer->value, message_buffer->length);
+ if (message_buffer->length)
+ memcpy(buf, message_buffer->value, message_buffer->length);
+ else
+ memset(buf, 0, len);
token = (gss_cfx_mic_token)(buf + message_buffer->length);
token->TOK_ID[0] = 0x04;
@@ -1639,8 +1638,8 @@ OM_uint32 _gssapi_mic_cfx(OM_uint32 *minor_status,
krb5_auth_con_getlocalseqnumber(context,
ctx->auth_context,
&seq_number);
- _gsskrb5_encode_be_om_uint32(0, &token->SND_SEQ[0]);
- _gsskrb5_encode_be_om_uint32(seq_number, &token->SND_SEQ[4]);
+ _gss_mg_encode_be_uint32(0, &token->SND_SEQ[0]);
+ _gss_mg_encode_be_uint32(seq_number, &token->SND_SEQ[4]);
krb5_auth_con_setlocalseqnumber(context,
ctx->auth_context,
++seq_number);
@@ -1733,8 +1732,8 @@ OM_uint32 _gssapi_verify_mic_cfx(OM_uint32 *minor_status,
/*
* Check sequence number
*/
- _gsskrb5_decode_be_om_uint32(&token->SND_SEQ[0], &seq_number_hi);
- _gsskrb5_decode_be_om_uint32(&token->SND_SEQ[4], &seq_number_lo);
+ _gss_mg_decode_be_uint32(&token->SND_SEQ[0], &seq_number_hi);
+ _gss_mg_decode_be_uint32(&token->SND_SEQ[4], &seq_number_lo);
if (seq_number_hi) {
*minor_status = ERANGE;
return GSS_S_UNSEQ_TOKEN;
@@ -1773,7 +1772,8 @@ OM_uint32 _gssapi_verify_mic_cfx(OM_uint32 *minor_status,
*minor_status = ENOMEM;
return GSS_S_FAILURE;
}
- memcpy(buf, message_buffer->value, message_buffer->length);
+ if (message_buffer->length)
+ memcpy(buf, message_buffer->value, message_buffer->length);
memcpy(buf + message_buffer->length, token, sizeof(*token));
ret = krb5_verify_checksum(context, ctx->crypto,