ftpd authentication [PATCH] ftpd: NOMMU/chroot fix

Rich Felker dalias at libc.org
Fri Jun 27 13:37:55 UTC 2014


On Fri, Jun 27, 2014 at 01:55:26PM +0200, Denys Vlasenko wrote:
> On Fri, Jun 27, 2014 at 1:46 PM, Morten Kvistgaard
> <MK at pch-engineering.dk> wrote:
> > A small detail, why do you check if the root_fd is valid? Eg.
> >
> > ...
> > if (G.root_fd >= 0) {
> > ...
> >
> > It shouldn't be possible for it to be invalid and the old code didn't validate it either.
> 
> I added this in the next patch:
> 
>  #if !BB_MMU
> -       G.root_fd = xopen("/", O_RDONLY | O_DIRECTORY);
> -       close_on_exec_on(G.root_fd);
> +       G.root_fd = -1;
>  #endif
>         argv += optind;
>         if (argv[0]) {
> +#if !BB_MMU
> +               G.root_fd = xopen("/", O_RDONLY | O_DIRECTORY);
> +               close_on_exec_on(G.root_fd);
> +#endif

It would be nice to have an "assume O_CLOEXEC" build option and use
O_CLOEXEC wherever close_on_exec_on is currently used. Might save a
little bit of bloat if nothing else. This could probably be achieved
just by adding O_CLOEXEC at the call sites, defining it to 0 if the
system doesn't define it, and defining close_on_exec_on(x) away to
nothing if the build option is selected.

Rich


More information about the busybox mailing list