> > +                           if (pledge("stdio rpath getpw proc wpath cpath 
> > inet ioctl sendfd recvfd",
> > +                                      NULL) == -1) {
> > +                                   fatalx("pledge");
> > +                           }
> 
> whoa, still a big list of promises, and some are a bit unexpected for
> me. could you explain the need for them ?
> 
> I mean, if "rpath wpath cpath" are expected for a daemon that serve
> files, "ioctl" for example is more questionable. could you explain
> quickly why or where ftpd needs them ?

Pretty sure that "ioctl" promise can be replaced with "tty".

retrieve() -> ftpd_popen() -> ls_main()

/usr/src/bin/ls/ls_main.c:121 contains a call to
"ioctl(STDOUT_FILENO, TIOCGWINSZ, &win)".

I'm a bit worried about this execv() call in popen.c:143 in ftpd_popen()

Are you sure this can't be reached?

Otherwise an "exec" promise would probably also be needed.

Reply via email to