Use windows DACL fix for pg_regress as well.
authorMagnus Hagander <magnus@hagander.net>
Tue, 4 Mar 2008 15:38:33 +0000 (15:38 +0000)
committerMagnus Hagander <magnus@hagander.net>
Tue, 4 Mar 2008 15:38:33 +0000 (15:38 +0000)
Dave Page

src/test/regress/pg_regress.c

index ce30041df664c5ec0bb22156fa303205a2e8d737..3264c7e867a88cec2e568a1c68d89e72fa0844ce 100644 (file)
@@ -1009,14 +1009,30 @@ spawn_process(const char *cmdline)
        cmdline2 = malloc(strlen(cmdline) + 8);
        sprintf(cmdline2, "cmd /c %s", cmdline);
 
-       if (!CreateProcessAsUser(restrictedToken, NULL, cmdline2, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
+       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