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 05b19d4..bd3dcf8 100644
--- a/src/server.c
+++ b/src/server.c
@@ -3268,6 +3268,11 @@
}
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 @@
/* 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 */