summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorJustus Winter <justus@gnupg.org>2017-03-10 12:36:39 +0100
committerJustus Winter <justus@gnupg.org>2017-03-10 15:46:59 +0100
commitbaf7e5c8ce176aead15c2559952d8bdf0da41ffd (patch)
tree43161242fdcab242042d56e0e6d4ad61227a2ded /hurd
parent150ff2ad69344d8555c14b42b2658313f16e9d1e (diff)
hurd: Use polymorphic port types to return some rights.
Currently, the RPC definitions of two procedures of the process subsystem assume that the rights are created from a receive right. Similarly, 'proc_getmsgport' assumes that the right is to be copied. This needlessly limits the ability to relay the RPC in server code. This fixes this. The protocol is unchanged, only the generated server stubs assume an additional parameter for the type. * hurd/process.defs (proc_getmsgport): Make 'msgport' parameter polymorphic. (proc_task2proc): Make 'proc' parameter polymorphic. (proc_pid2proc): Likewise. * hurd/process_reply.defs (proc_getmsgport): Likewise. (proc_task2proc_reply): Likewise. (proc_pid2proc_reply): Likewise. * proc/info.c (S_proc_task2proc): Adapt server function. (S_proc_pid2proc): Likewise. * proc/msg.c (S_proc_getmsgport): Likewise.
Diffstat (limited to 'hurd')
-rw-r--r--hurd/process.defs6
-rw-r--r--hurd/process_reply.defs6
2 files changed, 6 insertions, 6 deletions
diff --git a/hurd/process.defs b/hurd/process.defs
index 4ceb69e2..df70eb9a 100644
--- a/hurd/process.defs
+++ b/hurd/process.defs
@@ -156,7 +156,7 @@ routine proc_getmsgport (
process: process_t;
sreplyport reply_port: sreply_port_t;
pid: pid_t;
- out msgport: mach_port_t);
+ out msgport: mach_port_poly_t);
/* Wait for a child process to exit. If pid is zero, it waits for any
child in the same pgrp as the parent. If pid is -1, it waits for
@@ -246,7 +246,7 @@ routine proc_task2pid (
routine proc_task2proc (
process: process_t;
task: task_t;
- out proc: mach_port_make_send_t);
+ out proc: mach_port_poly_t);
routine proc_proc2task (
process: process_t;
@@ -255,7 +255,7 @@ routine proc_proc2task (
routine proc_pid2proc (
process: process_t;
pid: pid_t;
- out proc: mach_port_make_send_t);
+ out proc: mach_port_poly_t);
routine proc_getprocinfo (
process: process_t;
diff --git a/hurd/process_reply.defs b/hurd/process_reply.defs
index 15282fea..2fc21c92 100644
--- a/hurd/process_reply.defs
+++ b/hurd/process_reply.defs
@@ -51,7 +51,7 @@ skip; /* get_arg_locations */
simpleroutine proc_getmsgport_reply (
reply_port: reply_port_t;
RETURN_CODE_ARG;
- in msgports: mach_port_t);
+ in msgports: mach_port_poly_t);
simpleroutine proc_wait_reply (
reply_port: reply_port_t;
@@ -83,7 +83,7 @@ simpleroutine proc_task2pid_reply (
simpleroutine proc_task2proc_reply (
reply_port: reply_port_t;
RETURN_CODE_ARG;
- proc: mach_port_make_send_t);
+ proc: mach_port_poly_t);
simpleroutine proc_proc2task_reply (
reply_port: reply_port_t;
@@ -93,7 +93,7 @@ simpleroutine proc_proc2task_reply (
simpleroutine proc_pid2proc_reply (
reply_port: reply_port_t;
RETURN_CODE_ARG;
- proc: mach_port_make_send_t);
+ proc: mach_port_poly_t);
simpleroutine proc_getprocinfo_reply (
reply_port: reply_port_t;