[git commit] httpd: allow '-h' to work when daemonized with NOMMU enabled

Denys Vlasenko vda.linux at googlemail.com
Tue Jun 9 15:38:21 UTC 2020


commit: https://git.busybox.net/busybox/commit/?id=17764603f2a10bd43d174dc05512f38ab16a080a
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Commit d1b75e184 (httpd: permit non-default home directory with NOMMU
enabled) only works when used with the '-f' (foreground) option.

When '-f' isn't specified and NOMMU is enabled bb_daemonize_or_rexec()
is called to daemonize the server.  Since the server process has been
re-execed the previous patch results in the xchdir() not being called.

Fix this by resetting the re_execed variable in this case.

Signed-off-by: Ron Yorston <rmy at pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/httpd.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/networking/httpd.c b/networking/httpd.c
index c2d226592..f4e95768f 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -2734,11 +2734,11 @@ int httpd_main(int argc UNUSED_PARAM, char **argv)
 #if !BB_MMU
 	if (!(opt & OPT_FOREGROUND)) {
 		bb_daemonize_or_rexec(0, argv); /* don't change current directory */
+		re_execed = 0; /* for the following chdir to work */
 	}
 #endif
-
-	/* Chdir to home (unless we were re-execed for NOMMU case:
-	 * we are already in the home dir then).
+	/* Chdir to home (unless we were re_exec()ed for NOMMU case
+	 * in mini_httpd_nommu(): we are already in the home dir then).
 	 */
 	if (!re_execed)
 		xchdir(home_httpd);


More information about the busybox-cvs mailing list