mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-29 08:02:08 +00:00
BUG/MEDIUM: spoe: Don't use the SPOE applet after releasing it
In spoe_release_appctx(), the SPOE applet may be used after it was released to get its exit status code. Of course, HAProxy crashes when this happens. This patch must be backported to 1.9 and 1.8.
This commit is contained in:
parent
08e6646460
commit
55ae8a64e4
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user