Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 9e70e65

Browse files
committed
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 9886744 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
1 parent 69c12c4 commit 9e70e65

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/bin/pg_ctl/pg_ctl.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -559,11 +559,11 @@ start_postmaster(void)
559559
else
560560
close(fd);
561561

562-
cmd = psprintf("CMD /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"",
562+
cmd = psprintf("CMD /D /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"",
563563
exec_path, pgdata_opt, post_opts, DEVNULL, log_file);
564564
}
565565
else
566-
cmd = psprintf("CMD /C \"\"%s\" %s%s < \"%s\" 2>&1\"",
566+
cmd = psprintf("CMD /D /C \"\"%s\" %s%s < \"%s\" 2>&1\"",
567567
exec_path, pgdata_opt, post_opts, DEVNULL);
568568

569569
if (!CreateRestrictedProcess(cmd, &pi, false))

0 commit comments

Comments
 (0)