From: Alan T. DeKok Date: Wed, 11 Mar 2020 12:46:22 +0000 (-0400) Subject: rearrange for simplicity X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b70f8dd23968aa238d402cbe0365f714cefb35ac;p=thirdparty%2Ffreeradius-server.git rearrange for simplicity --- diff --git a/src/lib/server/request.c b/src/lib/server/request.c index ec3cfca84dc..83c5b5e6cec 100644 --- a/src/lib/server/request.c +++ b/src/lib/server/request.c @@ -103,7 +103,6 @@ static int _request_free(REQUEST *request) */ if (unlikely(fr_dlist_entry_in_list(&request->free_entry))) { fr_dlist_entry_unlink(&request->free_entry); /* Don't trust the list head to be available */ - talloc_free(request->state_ctx); goto really_free; } @@ -119,12 +118,10 @@ static int _request_free(REQUEST *request) * Ensure any data associated * with the state ctx is freed. */ + state_ctx = request->state_ctx; if (request->state_ctx) { rad_assert(!request->parent || (request->state_ctx != request->parent->state_ctx)); talloc_free_children(request->state_ctx); - state_ctx = request->state_ctx; - } else { - state_ctx = NULL; } free_list = request_free_list; @@ -145,6 +142,13 @@ static int _request_free(REQUEST *request) return -1; /* Prevent free */ } + /* + * Ensure anything that might reference the request is + * freed before it is. + */ + talloc_free_children(request); + +really_free: /* * state_ctx is parented separately. * @@ -174,13 +178,6 @@ static int _request_free(REQUEST *request) talloc_free(request->state_ctx); } - /* - * Ensure anything that might reference the request is - * freed before it is. - */ - talloc_free_children(request); - -really_free: #ifndef NDEBUG request->magic = 0x01020304; /* set the request to be nonsense */ #endif