From 5809565f70bd51451ef51da7dfc33716458abec3 Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Sun, 11 Feb 2024 10:32:08 +0000 Subject: httpd: code shrink When setting up the arguments for the CGI handler: - Use '-I0' rather than two separate arguments. - Use memcpy() to copy the server arguments. Saves 32 bytes. --- networking/httpd.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/networking/httpd.c b/networking/httpd.c index 0853eaad1..26656fd16 100644 --- a/networking/httpd.c +++ b/networking/httpd.c @@ -1656,7 +1656,6 @@ static void send_cgi_and_exit( int pid; #if ENABLE_PLATFORM_MINGW32 char **argv; - int i; #endif /* Make a copy. NB: caller guarantees: @@ -1752,19 +1751,17 @@ static void send_cgi_and_exit( } script++; - argv = xzalloc((server_argc + 9) * sizeof(char *)); + argv = xzalloc((server_argc + 8) * sizeof(char *)); argv[0] = (char *)bb_busybox_exec_path; argv[1] = (char *)"--busybox"; argv[2] = (char *)"-httpd"; // don't daemonise in main() - argv[3] = (char *)"-I"; - argv[4] = (char *)"0"; - for (i = 0; i < server_argc; ++i) - argv[i + 5] = server_argv[i]; - argv[server_argc + 5] = xasprintf("%d:%d:%d:%d", toCgi.wr, toCgi.rd, + argv[3] = (char *)"-I0"; + memcpy(argv + 4, server_argv, sizeof(*argv) * server_argc); + argv[server_argc + 4] = xasprintf("%d:%d:%d:%d", toCgi.wr, toCgi.rd, fromCgi.wr, fromCgi.rd); - argv[server_argc + 6] = (char *)url + 1; // script directory - argv[server_argc + 7] = (char *)script; // script name - /* argv[server_argc + 8] = NULL; - xzalloc did it */ + argv[server_argc + 5] = (char *)url + 1; // script directory + argv[server_argc + 6] = (char *)script; // script name + /* argv[server_argc + 7] = NULL; - xzalloc did it */ pid = foreground ? mingw_spawn(argv) : mingw_spawn_detach(argv); if (pid == -1) -- cgit v1.2.3-55-g6feb