From dc6e8a9a7b19052b8fd8ab7f9a84a4a95b4a6d5b Mon Sep 17 00:00:00 2001 From: Ilya Shipitsin Date: Thu, 16 Jul 2020 02:02:40 +0500 Subject: [PATCH] BUG/MEDIUM: server: resolve state file handle leak on reload During reload, server state file is read and file handle is not released this was indepently reported in #738 and #660. partially resolves #660. This should be backported to 2.2 and 2.1. --- src/server.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/server.c b/src/server.c index 05b19d4e10..bd3dcf8868 100644 --- a/src/server.c +++ b/src/server.c @@ -3268,6 +3268,11 @@ void apply_server_state(void) } out_load_server_state_in_tree: + if (f) { + fclose(f); + f = NULL; + } + /* parse all proxies and load states form tree (global file) or from local file */ for (curproxy = proxies_list; curproxy != NULL; curproxy = curproxy->next) { /* servers are only in backends */ @@ -3447,9 +3452,11 @@ void apply_server_state(void) /* now we can proceed with server's state update */ srv_update_state(srv, version, srv_params); } + + fileclose: + fclose(f); + } -fileclose: - fclose(f); } /* now free memory allocated for the tree */ -- 2.39.5