From 2137f0c28e2197193e9cce5fdc133d14757a6503 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Mon, 24 Jan 2022 18:27:35 -0600 Subject: [PATCH] kcm: Do not clobber error from server --- lib/krb5/kcm.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/krb5/kcm.c b/lib/krb5/kcm.c index d1bdae0c0..0dffb8b60 100644 --- a/lib/krb5/kcm.c +++ b/lib/krb5/kcm.c @@ -73,6 +73,8 @@ kcm_send_request(krb5_context context, krb5_error_code ret = 0; krb5_data request_data; + krb5_data_zero(response_data); + HEIMDAL_MUTEX_lock(&kcm_mutex); if (kcm_ipc == NULL) ret = heim_ipc_init_context(kcm_ipc_name, &kcm_ipc); @@ -88,12 +90,6 @@ kcm_send_request(krb5_context context, ret = heim_ipc_call(kcm_ipc, &request_data, response_data, NULL); krb5_data_free(&request_data); - - if (ret) { - krb5_clear_error_message(context); - ret = KRB5_CC_NOSUPP; - } - return ret; } @@ -181,10 +177,11 @@ krb5_kcm_call(krb5_context context, *response_p = NULL; krb5_data_zero(&response_data); - ret = kcm_send_request(context, request, &response_data); - if (ret) - return ret; + if (ret) { + krb5_data_free(&response_data); + return ret; + } response = krb5_storage_from_data(&response_data); if (response == NULL) {