diff options
author | Ron Yorston <rmy@pobox.com> | 2023-04-28 14:05:59 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2023-04-28 14:05:59 +0100 |
commit | 5d417695bcd5af331acf69690312deff61b233d0 (patch) | |
tree | 71f632f40cc05e9ac1f3dea798c34c887b6a8bba /networking | |
parent | e790046619f539356b950a5b07cba2f477401b4b (diff) | |
download | busybox-w32-5d417695bcd5af331acf69690312deff61b233d0.tar.gz busybox-w32-5d417695bcd5af331acf69690312deff61b233d0.tar.bz2 busybox-w32-5d417695bcd5af331acf69690312deff61b233d0.zip |
win32: code shrink copying of argv
There are two places where a copy of an argv array is made with
extra space at the start. Move this code into a function.
Saves 56-64 bytes.
Diffstat (limited to 'networking')
-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); |