From e930c872b65c19c8950556fa94aa9ab53b2919b0 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Tue, 2 Jul 2024 11:16:56 +0200 Subject: [PATCH] Use safe string copy routine Using memcpy with strlen as the size parameter will not take the NULL terminator into account, relying instead on the destination buffer being properly initialized. Replace with strlcpy which is a safer alternative, and more in line with how we handle copying strings elsewhere. Author: Ranier Vilela Discussion: https://postgr.es/m/CAEudQApAsbLsQ+gGiw-hT+JwGhgogFa_=5NUkgFO6kOPxyNidQ@mail.gmail.com --- src/backend/access/transam/xlog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index d36272ab4f..33e27a6e72 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -8744,7 +8744,7 @@ do_pg_backup_start(const char *backupidstr, bool fast, List **tablespaces, errmsg("backup label too long (max %d bytes)", MAXPGPATH))); - memcpy(state->name, backupidstr, strlen(backupidstr)); + strlcpy(state->name, backupidstr, sizeof(state->name)); /* * Mark backup active in shared memory. We must do full-page WAL writes