From: Daniel Gustafsson Date: Tue, 2 Jul 2024 09:16:56 +0000 (+0200) Subject: Use safe string copy routine X-Git-Tag: REL_18_BETA1~2493 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e930c872b65c19c8950556fa94aa9ab53b2919b0;p=thirdparty%2Fpostgresql.git 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 --- diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index d36272ab4ff..33e27a6e72c 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