mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-13 15:04:42 +00:00
BUG/MEDIUM: stick-table: fix regression caused by a change in proxy struct
In commit 1b8e68e
("MEDIUM: stick-table: Stop handling stick-tables as
proxies."), the ->table member of proxy struct was replaced by a pointer
that is not always checked and in some situations can cause a segfault,
eg. during reload or while using "show table" on CLI socket.
No backport is needed.
This commit is contained in:
parent
eaa4555003
commit
7d61a33921
@ -2320,8 +2320,10 @@ int check_config_validity()
|
||||
if (curproxy->state == PR_STSTOPPED) {
|
||||
/* ensure we don't keep listeners uselessly bound */
|
||||
stop_proxy(curproxy);
|
||||
free((void *)curproxy->table->peers.name);
|
||||
curproxy->table->peers.p = NULL;
|
||||
if (curproxy->table) {
|
||||
free((void *)curproxy->table->peers.name);
|
||||
curproxy->table->peers.p = NULL;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -2367,7 +2367,8 @@ void deinit(void)
|
||||
|
||||
pool_destroy(p->req_cap_pool);
|
||||
pool_destroy(p->rsp_cap_pool);
|
||||
pool_destroy(p->table->pool);
|
||||
if (p->table)
|
||||
pool_destroy(p->table->pool);
|
||||
|
||||
p0 = p;
|
||||
p = p->next;
|
||||
|
@ -3588,7 +3588,8 @@ static int table_prepare_data_request(struct appctx *appctx, char **args)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!((struct proxy *)appctx->ctx.table.target)->table->data_ofs[appctx->ctx.table.data_type]) {
|
||||
if (!((struct proxy *)appctx->ctx.table.target)->table ||
|
||||
!((struct proxy *)appctx->ctx.table.target)->table->data_ofs[appctx->ctx.table.data_type]) {
|
||||
appctx->ctx.cli.severity = LOG_ERR;
|
||||
appctx->ctx.cli.msg = "Data type not stored in this table\n";
|
||||
appctx->st0 = CLI_ST_PRINT;
|
||||
|
Loading…
Reference in New Issue
Block a user