sorry, it seems I didn't follow the usual path for submitting a patch, so here I go again:
I stumbled upon a problem with the CGI-enabled httpd. It seems that httpd can't handle a CGI call with an appended PATH_INFO, if the latter ends with a slash. httpd takes this as a call for a directory listing and throws 404. For further details you may take a look here: https://lists.zx2c4.com/pipermail/cgit/2023-March/004825.html I've attached a patch, which works for me, although my understanding of the httpd.c code is only superficial. Patch was generated by diff -u networking/httpd.c networking/httpd.c.new >httpd.patch against the busybox-1.34.1 tarball Thanks a lot to the busybox developers for their outstanding work. best regards Andreas --- networking/httpd.c 2021-06-16 12:02:16.000000000 +0200 +++ networking/httpd.c.new 2023-03-07 19:05:22.447075000 +0100 @@ -2426,11 +2426,14 @@ } #if ENABLE_FEATURE_HTTPD_CGI else if (urlp[-1] == '/') { - /* It's a dir URL and there is no index.html */ - /* Is there cgi-bin/index.cgi? */ - if (access("/cgi-bin/index.cgi"+1, X_OK) != 0) - send_headers_and_exit(HTTP_NOT_FOUND); /* no */ - cgi_type = CGI_INDEX; + if (cgi_type == CGI_NONE) { + /* It's a dir URL and there is no index.html */ + /* Is there cgi-bin/index.cgi? */ + if (access("/cgi-bin/index.cgi"+1, X_OK) != 0) { + send_headers_and_exit(HTTP_NOT_FOUND); /* no */ + } + cgi_type = CGI_INDEX; + } } #endif _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
