aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2024-01-12 13:53:14 +0900
committerMichael Paquier <michael@paquier.xyz>2024-01-12 13:53:14 +0900
commit9e70e6564fc816c96643564ab6f906a75e0a3308 (patch)
treeebcc613959c880cf25b79836f4ce74681a5821e6
parent69c12c41740913cc90e20886af4218db9b9b776c (diff)
downloadpostgresql-9e70e6564fc816c96643564ab6f906a75e0a3308.tar.gz
postgresql-9e70e6564fc816c96643564ab6f906a75e0a3308.zip
pg_ctl: Disable autoruns for cmd.exe on Windows
On Windows, cmd.exe is used to launch the postmaster process to ease its redirection setup. However, cmd.exe may execute other programs at startup due to autorun configurations, which could influence the postmaster startup. This patch adds /D flag to the launcher cmd.exe command line to disable autorun settings written in the registry. This was originally applied on HEAD as of 9886744a361b without a backpatch, but the patch has survived CI and buildfarm cycles. I have checked that cmd /d exists down to Windows XP, which should make this change work correctly in the oldest branches still supported. Reported-by: Hayato Kuroda Author: Kyotaro Horiguchi Reviewed-by: Robert Haas, Michael Paquier Discussion: https://postgr.es/m/20230922.161551.320043332510268554.horikyota.ntt@gmail.com Backpatch-through: 12
-rw-r--r--src/bin/pg_ctl/pg_ctl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c
index 4f566441226..2437a65c03a 100644
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -559,11 +559,11 @@ start_postmaster(void)
else
close(fd);
- cmd = psprintf("CMD /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"",
+ cmd = psprintf("CMD /D /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"",
exec_path, pgdata_opt, post_opts, DEVNULL, log_file);
}
else
- cmd = psprintf("CMD /C \"\"%s\" %s%s < \"%s\" 2>&1\"",
+ cmd = psprintf("CMD /D /C \"\"%s\" %s%s < \"%s\" 2>&1\"",
exec_path, pgdata_opt, post_opts, DEVNULL);
if (!CreateRestrictedProcess(cmd, &pi, false))