aboutsummaryrefslogtreecommitdiff
path: root/utils/fakeauth.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/fakeauth.c')
-rw-r--r--utils/fakeauth.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/utils/fakeauth.c b/utils/fakeauth.c
index 5a349a8e..264be22b 100644
--- a/utils/fakeauth.c
+++ b/utils/fakeauth.c
@@ -1,5 +1,5 @@
/* fakeauth -- proxy auth server to lie to users about what their IDs are
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2010 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -397,7 +397,7 @@ believe it has restricted them to different identities or no identity at all.\
/* We cannot use fork because it doesn't do the right thing with our send
rights that point to our own receive rights, i.e. the new auth port.
Since posix_spawn might be implemented with fork (prior to glibc 2.3),
- we cannot use that simple interface either. We use _hurd_exec
+ we cannot use that simple interface either. We use _hurd_exec_paths
directly to effect what posix_spawn does in the simple case. */
{
task_t newtask;
@@ -426,7 +426,12 @@ believe it has restricted them to different identities or no identity at all.\
if (err)
error (3, err, "proc_child");
+#ifdef HAVE__HURD_EXEC_PATHS
+ err = _hurd_exec_paths (newtask, execfile, argv[argi], argv[argi],
+ &argv[argi], environ);
+#else
err = _hurd_exec (newtask, execfile, &argv[argi], environ);
+#endif
mach_port_deallocate (mach_task_self (), newtask);
mach_port_deallocate (mach_task_self (), execfile);
if (err)