BUG/MINOR: server-state: use the argument, not the global state

The refactoring in commit 131b07be3 ("MEDIUM: server: Refactor
apply_server_state() to make it more readable") also had a copy-paste
error resulting in using global.server_state_file instead of the
function's argument, which easily crashes with a conf having a
state file in a backend and no global state file.

In addition, let's simplify the code and get rid of strcpy() which
almost certainly will break the build on OpenBSD.

This was introduced in 2.4-dev10, no backport is needed.
diff --git a/src/server_state.c b/src/server_state.c
index 93971e7..7235305 100644
--- a/src/server_state.c
+++ b/src/server_state.c
@@ -733,9 +733,7 @@
 	/* create the globalfilepath variable */
 	if (*filename == '/' || !global.server_state_base) {
 		/* absolute path or no base directory provided */
-		len = strlen(filename);
-		if (len < maxpathlen)
-			strcpy(dst_path, global.server_state_file);
+		len = strlcpy2(dst_path, filename, maxpathlen);
 	}
 	else {
 		/* concat base directory and global server-state file */