Re-enable autoruns for cmd.exe on Windows

This acts as a revert of b83747a8a6 and 9886744a36.  As pointed out
by Noah, HEAD and REL_17_STABLE are in a weird state where the code
paths adding /D would limit the spawn of child processes, but we still
have code paths where the spawn of more than one child process(es) would
be possible.

Let's remove these /D switches for now, to bring back the code into a
state consistent with how autorun is configured on a Windows host.

Reported-by: Noah Misch
Discussion: https://postgr.es/m/20240630021211.f3.nmisch@google.com
Backpatch-through: 17
pull/166/head
Michael Paquier 1 year ago
parent 066e8ac6ea
commit 74b8e6a698
  1. 4
      src/bin/pg_ctl/pg_ctl.c
  2. 2
      src/test/regress/pg_regress.c

@ -552,11 +552,11 @@ start_postmaster(void)
else
close(fd);
cmd = psprintf("\"%s\" /D /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"",
cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"",
comspec, exec_path, pgdata_opt, post_opts, DEVNULL, log_file);
}
else
cmd = psprintf("\"%s\" /D /C \"\"%s\" %s%s < \"%s\" 2>&1\"",
cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" 2>&1\"",
comspec, exec_path, pgdata_opt, post_opts, DEVNULL);
if (!CreateRestrictedProcess(cmd, &pi, false))

@ -1244,7 +1244,7 @@ spawn_process(const char *cmdline)
comspec = "CMD";
memset(&pi, 0, sizeof(pi));
cmdline2 = psprintf("\"%s\" /d /c \"%s\"", comspec, cmdline);
cmdline2 = psprintf("\"%s\" /c \"%s\"", comspec, cmdline);
if (!CreateRestrictedProcess(cmdline2, &pi))
exit(2);

Loading…
Cancel
Save