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:
Aurelien DARRAGON 2025-08-07 13:04:26 +02:00
parent 833158f9e0
commit 3759172015

View File

@ -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