diff options
Diffstat (limited to 'networking/httpd.c')
-rw-r--r-- | networking/httpd.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/networking/httpd.c b/networking/httpd.c index 302d1611d..2b2d14076 100644 --- a/networking/httpd.c +++ b/networking/httpd.c | |||
@@ -2804,7 +2804,7 @@ static void mini_httpd_win32(int fg, int sock, int argc, char **argv) | |||
2804 | 2804 | ||
2805 | argv_copy[0] = (char *)bb_busybox_exec_path; | 2805 | argv_copy[0] = (char *)bb_busybox_exec_path; |
2806 | argv_copy[1] = (char *)"--busybox"; | 2806 | argv_copy[1] = (char *)"--busybox"; |
2807 | argv_copy[2] = (char *)"httpd"; | 2807 | argv_copy[2] = (char *)"-httpd" + 1; // skip '-' |
2808 | argv_copy[3] = (char *)"-I"; | 2808 | argv_copy[3] = (char *)"-I"; |
2809 | memcpy(&argv_copy[5], &argv[1], argc * sizeof(argv[0])); | 2809 | memcpy(&argv_copy[5], &argv[1], argc * sizeof(argv[0])); |
2810 | 2810 | ||
@@ -2850,14 +2850,12 @@ static void mini_httpd_inetd(void) | |||
2850 | static void mingw_daemonize(char **argv) | 2850 | static void mingw_daemonize(char **argv) |
2851 | { | 2851 | { |
2852 | char **new_argv; | 2852 | char **new_argv; |
2853 | int argc, fd; | 2853 | int fd; |
2854 | 2854 | ||
2855 | argc = string_array_len((char **)argv); | 2855 | new_argv = grow_argv(argv + 1, 3); |
2856 | new_argv = xmalloc(sizeof(*argv)*(argc+3)); | ||
2857 | new_argv[0] = (char *)bb_busybox_exec_path; | 2856 | new_argv[0] = (char *)bb_busybox_exec_path; |
2858 | new_argv[1] = (char *)"--busybox"; | 2857 | new_argv[1] = (char *)"--busybox"; |
2859 | new_argv[2] = (char *)"-httpd"; | 2858 | new_argv[2] = (char *)"-httpd"; // '-' marks the daemonised process |
2860 | memcpy(&new_argv[3], &argv[1], sizeof(*argv)*argc); | ||
2861 | 2859 | ||
2862 | fd = xopen(bb_dev_null, O_RDWR); | 2860 | fd = xopen(bb_dev_null, O_RDWR); |
2863 | xdup2(fd, 0); | 2861 | xdup2(fd, 0); |