aboutsummaryrefslogtreecommitdiff
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.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libfshelp/start-translator-long.c b/libfshelp/start-translator-long.c
index af893ba2..1bbf310a 100644
--- a/libfshelp/start-translator-long.c
+++ b/libfshelp/start-translator-long.c
@@ -267,9 +267,15 @@ fshelp_start_translator_long (fshelp_open_fn_t underlying_open_fn,
proc_child (proc, task);
err = proc_task2proc (proc, task, &ports[INIT_PORT_PROC]);
if (!err)
- err = proc_setowner (ports[INIT_PORT_PROC],
- owner_uid,
- owner_uid == (uid_t) -1);
+ {
+ /* Try proc_setowner () for compatibility with
+ older proc server. */
+ err = proc_setowner (ports[INIT_PORT_PROC],
+ owner_uid,
+ owner_uid == (uid_t) -1);
+ if (err == EOPNOTSUPP)
+ err = 0;
+ }
if (deallocate_proc)
mach_port_deallocate (mach_task_self (), proc);
if (err)