From cb9c106b7029e650537960814946a6e5ebc22bd2 Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Wed, 11 Mar 2026 09:28:13 +0100 Subject: [PATCH] Check whether the "type" key in error responses is present --- src/md_acme.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/md_acme.c b/src/md_acme.c index 099d3a4..b75f5c4 100644 --- a/src/md_acme.c +++ b/src/md_acme.c @@ -182,22 +182,24 @@ static apr_status_t inspect_problem(md_acme_req_t *req, const md_http_response_t req->resp_json = problem; ptype = md_json_gets(problem, MD_KEY_TYPE, NULL); - pdetail = md_json_gets(problem, MD_KEY_DETAIL, NULL); - req->rv = problem_status_get(ptype); - md_result_problem_set(req->result, req->rv, ptype, pdetail, - md_json_getj(problem, MD_KEY_SUBPROBLEMS, NULL)); - - - - if (APR_STATUS_IS_EAGAIN(req->rv)) { - md_log_perror(MD_LOG_MARK, MD_LOG_DEBUG, req->rv, req->p, - "acme reports %s: %s", ptype, pdetail); - } - else { - md_log_perror(MD_LOG_MARK, MD_LOG_WARNING, req->rv, req->p, - "acme problem %s: %s", ptype, pdetail); + + if (ptype) { + req->rv = problem_status_get(ptype); + pdetail = md_json_gets(problem, MD_KEY_DETAIL, NULL); + + md_result_problem_set(req->result, req->rv, ptype, pdetail, + md_json_getj(problem, MD_KEY_SUBPROBLEMS, NULL)); + + if (APR_STATUS_IS_EAGAIN(req->rv)) { + md_log_perror(MD_LOG_MARK, MD_LOG_DEBUG, req->rv, req->p, + "acme reports %s: %s", ptype, pdetail); + } + else { + md_log_perror(MD_LOG_MARK, MD_LOG_WARNING, req->rv, req->p, + "acme problem %s: %s", ptype, pdetail); + } + return req->rv; } - return req->rv; } }