From 7df974ee0bfd8978830b941e7af5697fd4268656 Mon Sep 17 00:00:00 2001 From: Stephen Frost Date: Sun, 8 May 2016 11:55:44 -0400 Subject: [PATCH] Disallow superuser names starting with 'pg_' in initdb As with CREATE ROLE, disallow users from specifying initial superuser names which begin with 'pg_' in initdb. Per discussion with Tom. --- src/bin/initdb/initdb.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 299ddfe86a..7dedd8adc6 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -3562,6 +3562,12 @@ main(int argc, char *argv[]) if (strlen(username) == 0) username = effective_user; + if (strncmp(username, "pg_", 3) == 0) + { + fprintf(stderr, _("%s: superuser name \"%s\" is reserved; role names can not begin with 'pg_'\n"), progname, username); + exit(1); + } + printf(_("The files belonging to this database system will be owned " "by user \"%s\".\n" "This user must also own the server process.\n\n"), -- 2.49.0