diff --git a/src/flt_spoe.c b/src/flt_spoe.c index 2755f3ab4..51d4f275a 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -1298,11 +1298,6 @@ spoe_release_appctx(struct appctx *appctx) task_wakeup(ctx->strm->task, TASK_WOKEN_MSG); } - /* Release allocated memory */ - spoe_release_buffer(&spoe_appctx->buffer, - &spoe_appctx->buffer_wait); - pool_free(pool_head_spoe_appctx, spoe_appctx); - if (!LIST_ISEMPTY(&agent->rt[tid].applets)) goto end; @@ -1327,6 +1322,11 @@ spoe_release_appctx(struct appctx *appctx) } end: + /* Release allocated memory */ + spoe_release_buffer(&spoe_appctx->buffer, + &spoe_appctx->buffer_wait); + pool_free(pool_head_spoe_appctx, spoe_appctx); + /* Update runtinme agent info */ agent->rt[tid].frame_size = agent->max_frame_size; list_for_each_entry(spoe_appctx, &agent->rt[tid].applets, list)