From 5a579901fd5ccde3fef8f437afa1b22958abe868 Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Sat, 29 Jan 2022 10:23:09 +1100 Subject: [PATCH] kdc: fix warning in GSS pre-authentication support Do not read an int32_t directly into a CKSUMTYPE enum. --- kdc/gss_preauth.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kdc/gss_preauth.c b/kdc/gss_preauth.c index 3b145fa54..d48690745 100644 --- a/kdc/gss_preauth.c +++ b/kdc/gss_preauth.c @@ -134,6 +134,7 @@ pa_gss_decode_context_state(astgs_request_t r, krb5_storage *sp; size_t cksumsize; krb5_data data; + int32_t cksumtype; memset(req_body_checksum, 0, sizeof(*req_body_checksum)); sec_context_token->length = 0; @@ -154,10 +155,12 @@ pa_gss_decode_context_state(astgs_request_t r, if (ret) goto out; - ret = krb5_ret_int32(sp, &req_body_checksum->cksumtype); + ret = krb5_ret_int32(sp, &cksumtype); if (ret) goto out; + req_body_checksum->cksumtype = (CKSUMTYPE)cksumtype; + if (req_body_checksum->cksumtype == CKSUMTYPE_NONE || krb5_checksum_is_keyed(r->context, req_body_checksum->cksumtype)) { ret = KRB5KDC_ERR_SUMTYPE_NOSUPP; @@ -273,7 +276,7 @@ pa_gss_encode_context_state(astgs_request_t r, if (ret) goto out; - ret = krb5_store_int32(sp, req_body_checksum->cksumtype); + ret = krb5_store_int32(sp, (int32_t)req_body_checksum->cksumtype); if (ret) goto out;