CLEANUP: tree-wide: remove strpcy() from constant strings

These ones are genenerally harmless on modern compilers because the
compiler checks them. While gcc optimizes them away without even
referencing strcpy(), clang prefers to call strcpy(). Nevertheless they
prevent from enabling stricter checks so better remove them altogether.
They were all replaced by strlcpy2() and the size of the destination
which is always known there.
diff --git a/src/clock.c b/src/clock.c
index 59ec173..e852035 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -415,7 +415,7 @@
 		get_localtime(new_date.tv_sec, &tm);
 		offset = get_gmt_offset(new_date.tv_sec, &tm);
 		if (unlikely(strftime(iso_time_str, sizeof(iso_time_str), "%Y-%m-%dT%H:%M:%S.000000+00:00", &tm) != 32))
-			strcpy(iso_time_str, "YYYY-mm-ddTHH:MM:SS.000000-00:00"); // make the failure visible but respect format.
+			strlcpy2(iso_time_str, "YYYY-mm-ddTHH:MM:SS.000000-00:00", sizeof(iso_time_str)); // make the failure visible but respect format.
 		iso_time_str[26] = offset[0];
 		iso_time_str[27] = offset[1];
 		iso_time_str[28] = offset[2];
diff --git a/src/frontend.c b/src/frontend.c
index 33d66df..0c2fb9c 100644
--- a/src/frontend.c
+++ b/src/frontend.c
@@ -78,7 +78,7 @@
 						addr_to_str(dst, sn, sizeof(sn));
 						port = get_host_port(dst);
 					} else {
-						strcpy(sn, "undetermined address");
+						strlcpy2(sn, "undetermined address", sizeof(sn));
 						port = 0;
 					}
 					send_log(fe, LOG_INFO, "Connect from %s:%d to %s:%d (%s/%s)\n",
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 7a8d830..30c2e11 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -709,7 +709,7 @@
 	if (listener->bind_conf->options & BC_O_DEF_ACCEPT) {
 		struct accept_filter_arg accept;
 		memset(&accept, 0, sizeof(accept));
-		strcpy(accept.af_name, "dataready");
+		strlcpy2(accept.af_name, sizeof(accept.af_name), "dataready");
 		if (setsockopt(fd, SOL_SOCKET, SO_ACCEPTFILTER, &accept, sizeof(accept)) == -1) {
 			chunk_appendf(msg, "%scannot enable ACCEPT_FILTER", msg->data ? ", " : "");
 			err |= ERR_WARN;
diff --git a/src/server.c b/src/server.c
index f18fc5b..add9d77 100644
--- a/src/server.c
+++ b/src/server.c
@@ -3182,7 +3182,7 @@
 			inet_ntop(s->addr.ss_family, &((struct sockaddr_in6 *)&s->addr)->sin6_addr, oldip, INET6_ADDRSTRLEN);
 			break;
 		default:
-			strcpy(oldip, "(none)");
+			strlcpy2(oldip, "(none)", sizeof(oldip));
 			break;
 		};
 
diff --git a/src/stats.c b/src/stats.c
index a90a39c..18a5f01 100644
--- a/src/stats.c
+++ b/src/stats.c
@@ -2994,7 +2994,7 @@
 		if (ctx->scope_len) {
 			const char *scope_ptr = stats_scope_ptr(appctx, sc);
 
-			strcpy(scope_txt, STAT_SCOPE_PATTERN);
+			strlcpy2(scope_txt, STAT_SCOPE_PATTERN, sizeof(scope_txt));
 			memcpy(scope_txt + strlen(STAT_SCOPE_PATTERN), scope_ptr, ctx->scope_len);
 			scope_txt[strlen(STAT_SCOPE_PATTERN) + ctx->scope_len] = 0;
 		}
@@ -3645,7 +3645,7 @@
 	/* scope_txt = search pattern + search query, ctx->scope_len is always <= STAT_SCOPE_TXT_MAXLEN */
 	scope_txt[0] = 0;
 	if (ctx->scope_len) {
-		strcpy(scope_txt, STAT_SCOPE_PATTERN);
+		strlcpy2(scope_txt, STAT_SCOPE_PATTERN, sizeof(scope_txt));
 		memcpy(scope_txt + strlen(STAT_SCOPE_PATTERN), scope_ptr, ctx->scope_len);
 		scope_txt[strlen(STAT_SCOPE_PATTERN) + ctx->scope_len] = 0;
 	}
@@ -4395,7 +4395,7 @@
 	if (ctx->scope_len) {
 		const char *scope_ptr = stats_scope_ptr(appctx, sc);
 
-		strcpy(scope_txt, STAT_SCOPE_PATTERN);
+		strlcpy2(scope_txt, STAT_SCOPE_PATTERN, sizeof(scope_txt));
 		memcpy(scope_txt + strlen(STAT_SCOPE_PATTERN), scope_ptr, ctx->scope_len);
 		scope_txt[strlen(STAT_SCOPE_PATTERN) + ctx->scope_len] = 0;
 	}