aboutsummaryrefslogtreecommitdiff
path: root/libdiskfs/file-exec.c
diff options
context:
space:
mode:
authorThomas Bushnell <thomas@gnu.org>2000-03-17 17:21:02 +0000
committerThomas Bushnell <thomas@gnu.org>2000-03-17 17:21:02 +0000
commited1d3f38812f06fcc85ff3fc60785b2193fa08a5 (patch)
tree04b5b9afee694f2aa16f15d5693c6b452acd0a19 /libdiskfs/file-exec.c
parentbde9c6f42327e37103f1fdd5381438536005b701 (diff)
downloadhurd-ed1d3f38812f06fcc85ff3fc60785b2193fa08a5.tar.gz
hurd-ed1d3f38812f06fcc85ff3fc60785b2193fa08a5.tar.bz2
hurd-ed1d3f38812f06fcc85ff3fc60785b2193fa08a5.zip
2000-03-17 Thomas Bushnell, BSG <tb@mit.edu>
* boot-start.c (diskfs_S_fsys_init, diskfs_start_bootstrap): Don't use MOVE_SEND in Hurd RPC. * file-exec.c (diskfs_S_file_exec): Don't use MAKE_SEND in Hurd RPC. * init-startup.c (diskfs_startup_diskfs, _diskfs_init_completed): Likewise.
Diffstat (limited to 'libdiskfs/file-exec.c')
-rw-r--r--libdiskfs/file-exec.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libdiskfs/file-exec.c b/libdiskfs/file-exec.c
index 451854ab..13afb7a9 100644
--- a/libdiskfs/file-exec.c
+++ b/libdiskfs/file-exec.c
@@ -57,6 +57,8 @@ diskfs_S_file_exec (struct protid *cred,
mach_port_t execserver;
int cached_exec;
struct hurd_userlink ulink;
+ mach_port_t right;
+
#define RETURN(code) do { err = (code); goto out; } while (0)
if (!cred)
@@ -150,15 +152,16 @@ diskfs_S_file_exec (struct protid *cred,
{
do
{
+ right = ports_get_send_right (newpi);
err = exec_exec (execserver,
- ports_get_right (newpi),
- MACH_MSG_TYPE_MAKE_SEND,
+ right, MACH_MSG_TYPE_COPY_SEND,
task, flags, argv, argvlen, envp, envplen,
fds, MACH_MSG_TYPE_COPY_SEND, fdslen,
portarray, MACH_MSG_TYPE_COPY_SEND, portarraylen,
intarray, intarraylen,
deallocnames, deallocnameslen,
destroynames, destroynameslen);
+ mach_port_deallocate (mach_task_self (), newpi)
if (err == MACH_SEND_INVALID_DEST)
{
if (cached_exec)