httpd: permit non-default home directory with NOMMU enabled
authorRon Yorston <rmy@pobox.com>
Tue, 7 Apr 2020 09:41:34 +0000 (10:41 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 30 Apr 2020 14:37:44 +0000 (16:37 +0200)
commitd1b75e1842b3e4f61daae2fb8a64d784a553f15c
treea8b5bb5175332f81cd3d9460acfabad4ad3fb9be
parent42a8984abc5eed709addac263aab43d64d47257d
httpd: permit non-default home directory with NOMMU enabled

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.

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/httpd.c