From 4ffd190b089a78aef0912fec477f36a738dc121c Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Thu, 20 Jan 2022 23:43:06 -0500 Subject: [PATCH] kadmin: kadmind_dispatch fix handling of HEIM_ERR_EOF error 1b213c1082be4ef5a1c23928d614c762f837dbe7 ("kadmind: Add missing error checks") altered the scope of the if (ret == HEIM_ERR_EOF) ret = 0; treatment of HEIM_ERR_EOF as a success code. Prior to that commit HEIM_ERR_EOF meant success only when reading the 'keepold' value. It indicated a premature failure if returned when reading 'princ' or 'n_key_data'. This change corrects the scope of HEIM_ERR_EOF indicating success. Change-Id: If5463b47dc3eabee6fa2f8e717147f02adc1586c --- kadmin/server.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/kadmin/server.c b/kadmin/server.c index ba7774616..dbd2f81b2 100644 --- a/kadmin/server.c +++ b/kadmin/server.c @@ -380,11 +380,12 @@ kadmind_dispatch(void *kadm_handlep, krb5_boolean initial, } ret = krb5_ret_principal(sp, &princ); if (ret == 0) - ret = krb5_ret_int32(sp, &n_key_data); - if (ret == 0) - ret = krb5_ret_int32(sp, &keepold); - if (ret == HEIM_ERR_EOF) - ret = 0; + ret = krb5_ret_int32(sp, &n_key_data); + if (ret == 0) { + ret = krb5_ret_int32(sp, &keepold); + if (ret == HEIM_ERR_EOF) + ret = 0; + } if (ret) goto fail;