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

