Hello, Justus Winter, on Mon 22 Feb 2016 19:22:14 +0100, wrote: > Apparently some users of 'mount' do not cope with any output being > generated from the spawned translator. > > * utils/mount.c (do_mount): Start translators with stderr closed.
Yep, that fixes the issue, thanks! > --- > utils/mount.c | 33 ++++++++++++++++++++++++++++++--- > 1 file changed, 30 insertions(+), 3 deletions(-) > > diff --git a/utils/mount.c b/utils/mount.c > index c5736ba..5fa35bc 100644 > --- a/utils/mount.c > +++ b/utils/mount.c > @@ -420,9 +420,36 @@ do_mount (struct fs *fs, int remount) > } > > explain ("settrans -a"); > - err = fshelp_start_translator (open_node, NULL, fsopts, > - fsopts, fsopts_len, timeout, > - &active_control); > + { > + mach_port_t ports[INIT_PORT_MAX]; > + mach_port_t fds[STDERR_FILENO + 1]; > + int ints[INIT_INT_MAX]; > + int i; > + > + for (i = 0; i < INIT_PORT_MAX; i++) > + ports[i] = MACH_PORT_NULL; > + for (i = 0; i < STDERR_FILENO + 1; i++) > + fds[i] = MACH_PORT_NULL; > + memset (ints, 0, INIT_INT_MAX * sizeof(int)); > + > + ports[INIT_PORT_CWDIR] = getcwdir (); > + ports[INIT_PORT_CRDIR] = getcrdir (); > + ports[INIT_PORT_AUTH] = getauth (); > + > + err = fshelp_start_translator_long (open_node, NULL, > + fsopts, fsopts, fsopts_len, > + fds, MACH_MSG_TYPE_COPY_SEND, > + STDERR_FILENO + 1, > + ports, MACH_MSG_TYPE_COPY_SEND, > + INIT_PORT_MAX, > + ints, INIT_INT_MAX, > + geteuid (), > + timeout, &active_control); > + for (i = 0; i < INIT_PORT_MAX; i++) > + mach_port_deallocate (mach_task_self (), ports[i]); > + for (i = 0; i <= STDERR_FILENO; i++) > + mach_port_deallocate (mach_task_self (), fds[i]); > + } > /* If ERR is due to a problem opening the translated node, we print > that name, otherwise, the name of the translator. */ > if (open_err) > -- > 2.1.4 > -- Samuel <P> moo <N> moo ? <D> P: keski t'arrive? :)) <P> moooo <N> moooooo ? <P> rien le net marche je suis content :) -+- #ens-mim - accro du net -+-