On Tue, Apr 7, 2020 at 11:41 AM Ron Yorston <[email protected]> wrote:
>
> When BusyBox is compiled with NOMMU enabled running httpd with
> the '-h' option fails even if the specified directory exists:
>
> $ ls -d www
> www
> $ busybox httpd -fvvvp 8080 -h www
> ...
> ... try to access http://localhost:8080/www
> ...
> httpd: can't change directory to 'www': No such file or directory
>
> The parent process executes xchdir("www"). When a connection is accepted
> it's handled by re-executing httpd in inetd mode. The child process
> inherits the current directory "www" and tries to change directory again
> to "www", which fails.
>
> Omit the call to xchdir() when httpd is re-executed.
Does the fix also work without -f (IOW: if daemonized?)
> }
> #endif
>
> - xchdir(home_httpd);
> +#if !BB_MMU
> + if (!re_execed)
> +#endif
#if is not necessary, re_exec is constant 0 for MMU build.
> + xchdir(home_httpd);
> if (!(opt & OPT_INETD)) {
> signal(SIGCHLD, SIG_IGN);
> server_socket = openServer();
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox