Hello,

this patch fixes the segmentation fault on start when HAProxy is configured to
load global server state file which doesn't exist. This can be considered a
regression from 1.8 which warned but continued without crashing. It needs to be
backported to 2.0.

Thanks,
Vedran
>From df3d9f27e48b29c2bf4885943a16e5a920d5471f Mon Sep 17 00:00:00 2001
From: Vedran Furac <[email protected]>
Date: Wed, 16 Oct 2019 14:49:38 +0200
Subject: [PATCH] BUG/MINOR: server: check return value of fopen() in
 apply_server_state()

fopen() can return NULL when state file is missing. This patch adds a
check of fopen() return value so we can skip processing in such case.
---
 src/server.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/server.c b/src/server.c
index df0dcbfe..6b740240 100644
--- a/src/server.c
+++ b/src/server.c
@@ -3595,6 +3595,8 @@ void apply_server_state(void)
 		f = fopen(globalfilepath, "r");
 		if (errno)
 			ha_warning("Can't open global server state file '%s': %s\n", globalfilepath, strerror(errno));
+		if (!f)
+			goto out_load_server_state_in_tree;
 
 		global_file_version = srv_state_get_version(f);
 		if (global_file_version == 0)
-- 
2.20.1

Reply via email to