mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-08 08:07:10 +02:00
BUG/MINOR: proxy: avoid NULL-deref in post_section_px_cleanup()
post_section_px_cleanup(), which was implemented in abcc73830
("MEDIUM: proxy: register a post-section cleanup function"), is called
for the current section no matter if the parsing was aborted due to
a fatal error. In this case, the curproxy pointer may point to NULL,
yet post_section_px_cleanup() assumes curproxy pointer is always valid,
which could lead to NULL-deref.
For instance, the config below will cause SEGFAULT:
listen toto titi
To fix the issue, let's simply consider that the curproxy pointer may
be NULL in post_section_px_cleanup(), in which case we skip the cleanup
for the curproxy since there is nothing we can do.
No backport needed
This commit is contained in:
parent
833158f9e0
commit
3759172015
@ -2823,6 +2823,8 @@ void proxy_adjust_all_maxconn()
|
|||||||
*/
|
*/
|
||||||
static int post_section_px_cleanup()
|
static int post_section_px_cleanup()
|
||||||
{
|
{
|
||||||
|
if (!curproxy)
|
||||||
|
return 0; // nothing to do
|
||||||
if ((curproxy->cap & PR_CAP_LISTEN) && !(curproxy->cap & PR_CAP_DEF)) {
|
if ((curproxy->cap & PR_CAP_LISTEN) && !(curproxy->cap & PR_CAP_DEF)) {
|
||||||
/* This is a regular proxy (not defaults). It doesn't need
|
/* This is a regular proxy (not defaults). It doesn't need
|
||||||
* to keep a default-server section if it still had one. We
|
* to keep a default-server section if it still had one. We
|
||||||
|
Loading…
Reference in New Issue
Block a user