From: Nick Porter Date: Sat, 18 Feb 2023 19:20:25 +0000 (+0000) Subject: Ensure slab element is released on all failure paths X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2ab76786ede374ea19cdc5bcad470fe2ff5069e;p=thirdparty%2Ffreeradius-server.git Ensure slab element is released on all failure paths And move error label to placate Coverity --- diff --git a/src/modules/rlm_imap/rlm_imap.c b/src/modules/rlm_imap/rlm_imap.c index f0a9de4dd43..d032ef61e66 100644 --- a/src/modules/rlm_imap/rlm_imap.c +++ b/src/modules/rlm_imap/rlm_imap.c @@ -179,7 +179,6 @@ static unlang_action_t CC_HINT(nonnull(1,2)) mod_authenticate(rlm_rcode_t *p_res randle = fr_imap_slab_reserve(t->slab); if (!randle){ - error: if (randle) fr_imap_slab_release(randle); RETURN_MODULE_FAIL; } @@ -187,7 +186,11 @@ static unlang_action_t CC_HINT(nonnull(1,2)) mod_authenticate(rlm_rcode_t *p_res FR_CURL_REQUEST_SET_OPTION(CURLOPT_USERNAME, username->vp_strvalue); FR_CURL_REQUEST_SET_OPTION(CURLOPT_PASSWORD, password->vp_strvalue); - if (fr_curl_io_request_enqueue(t->mhandle, request, randle)) RETURN_MODULE_INVALID; + if (fr_curl_io_request_enqueue(t->mhandle, request, randle)) { + error: + fr_imap_slab_release(randle); + RETURN_MODULE_FAIL; + } return unlang_module_yield(request, mod_authenticate_resume, imap_io_module_signal, randle); }