Fixed in git (a bit differently). Thank you.
On Tue, Mar 7, 2023 at 8:08 PM Andreas Mahling <[email protected]> wrote: > > 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 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
