mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-27 08:41:31 +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…
x
Reference in New Issue
Block a user