BUG/MINOR: server: Don't call fopen() with server-state filepath set to NULL
When a local server-state file is loaded, if its name is too long, the error
is not properly handled, resulting to a call to fopen() with the "filepath"
variable set to NULL. To fix the bug, when this error occurs, we jump to the
next proxy, via a "continue" statement. And we take case to set "filepath"
variable after the error handling to be sure.
This patch should fix the issue #1111. It must be backported as far as 1.6.
(cherry picked from commit 8952ea636b03fceb44c8172c4d9725a393e9146d)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/server.c b/src/server.c
index 3d234f1..a3fce5a 100644
--- a/src/server.c
+++ b/src/server.c
@@ -3287,10 +3287,10 @@
localfilepathlen += len;
localfilepath[localfilepathlen++] = 0;
}
- filepath = localfilepath;
localfileerror:
if (localfilepathlen == 0)
- localfilepath[0] = '\0';
+ continue;
+ filepath = localfilepath;
break;
case PR_SRV_STATE_FILE_NONE: