mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-25 22:22:11 +00:00
BUG/MAJOR: sessions: unlink session from list on out of memory
Since embryonic sessions were introduced in 1.5-dev12 with commit
2542b53
("MAJOR: session: introduce embryonic sessions"), a major
bug remained present. If haproxy cannot allocate memory during
session_complete() (for example, no more buffers), it will not
unlink the new session from the sessions list. This will cause
memory corruptions if the memory area from the session is reused
for anything else, and may also cause bogus output on "show sess"
on the CLI.
This fix must be backported to 1.5.
This commit is contained in:
parent
c9a0f6d023
commit
3b24641745
@ -580,6 +580,7 @@ int session_complete(struct session *s)
|
|||||||
/* and restore the connection pointer in case we destroyed it,
|
/* and restore the connection pointer in case we destroyed it,
|
||||||
* because kill_mini_session() will need it.
|
* because kill_mini_session() will need it.
|
||||||
*/
|
*/
|
||||||
|
LIST_DEL(&s->list);
|
||||||
s->target = &conn->obj_type;
|
s->target = &conn->obj_type;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user