summaryrefslogtreecommitdiff
path: root/libfshelp/start-translator-long.c
diff options
context:
space:
mode:
Diffstat (limited to 'libfshelp/start-translator-long.c')
-rw-r--r--libfshelp/start-translator-long.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/libfshelp/start-translator-long.c b/libfshelp/start-translator-long.c
index e1aea3c4..707b59ef 100644
--- a/libfshelp/start-translator-long.c
+++ b/libfshelp/start-translator-long.c
@@ -1,5 +1,6 @@
/*
- Copyright (C) 1995,96,99,2000,02, 04 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1999, 2000, 2002, 2004, 2010
+ Free Software Foundation, Inc.
Written by Miles Bader and Michael I. Bushnell.
This file is part of the GNU Hurd.
@@ -273,12 +274,22 @@ fshelp_start_translator_long (fshelp_open_fn_t underlying_open_fn,
saveport = ports[INIT_PORT_BOOTSTRAP];
ports[INIT_PORT_BOOTSTRAP] = bootstrap;
+#ifdef HAVE_FILE_EXEC_PATHS
/* Try and exec the translator in TASK... */
- err = file_exec (executable, task, EXEC_DEFAULTS,
- argz, argz_len, 0, 0,
- fds, fds_type, fds_len,
- ports, ports_type, ports_len,
- ints, ints_len, 0, 0, 0, 0);
+ err = file_exec_paths (executable, task, EXEC_DEFAULTS, name, name,
+ argz, argz_len, 0, 0,
+ fds, fds_type, fds_len,
+ ports, ports_type, ports_len,
+ ints, ints_len, 0, 0, 0, 0);
+ /* For backwards compatibility. Just drop it when we kill file_exec. */
+ if (err == MIG_BAD_ID)
+#endif
+ err = file_exec (executable, task, EXEC_DEFAULTS,
+ argz, argz_len, 0, 0,
+ fds, fds_type, fds_len,
+ ports, ports_type, ports_len,
+ ints, ints_len, 0, 0, 0, 0);
+
ports_moved = 1;
if (ports_type == MACH_MSG_TYPE_COPY_SEND)