Index: src/test/regress/pg_regress.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/test/regress/pg_regress.c,v retrieving revision 1.42 diff -c -r1.42 pg_regress.c *** src/test/regress/pg_regress.c 20 Feb 2008 22:44:16 -0000 1.42 --- src/test/regress/pg_regress.c 4 Mar 2008 13:03:31 -0000 *************** *** 1009,1022 **** cmdline2 = malloc(strlen(cmdline) + 8); sprintf(cmdline2, "cmd /c %s", cmdline); ! if (!CreateProcessAsUser(restrictedToken, NULL, cmdline2, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { fprintf(stderr, _("could not start process for \"%s\": %lu\n"), cmdline2, GetLastError()); exit_nicely(2); } free(cmdline2); CloseHandle(pi.hThread); return pi.hProcess; #endif --- 1009,1038 ---- cmdline2 = malloc(strlen(cmdline) + 8); sprintf(cmdline2, "cmd /c %s", cmdline); ! if (!CreateProcessAsUser(restrictedToken, ! NULL, ! cmdline2, ! NULL, ! NULL, ! TRUE, ! CREATE_SUSPENDED, ! NULL, ! NULL, ! &si, ! &pi)) { fprintf(stderr, _("could not start process for \"%s\": %lu\n"), cmdline2, GetLastError()); exit_nicely(2); } + + #ifndef __CYGWIN__ + AddUserToDacl(pi.hProcess); + #endif + free(cmdline2); + ResumeThread(pi.hThread); CloseHandle(pi.hThread); return pi.hProcess; #endif