From: Ilya Shipitsin Date: Wed, 15 Jul 2020 21:02:40 +0000 (+0500) Subject: BUG/MEDIUM: server: resolve state file handle leak on reload X-Git-Tag: v2.3-dev1~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dc6e8a9a7;p=thirdparty%2Fhaproxy.git 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. --- 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 */