[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Re: [PATCH] httpd should accept trailing slash after PATH_INFO
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2023-03-28 16:59:33
Message-ID: CAK1hOcM=vR45NftTLRwaS-2Tfn-Gu5iYXdAg6ADRDxXsLs8URA () mail ! gmail ! com
[Download RAW message or body]
Fixed in git (a bit differently). Thank you.
On Tue, Mar 7, 2023 at 8:08 PM Andreas Mahling
<andreas.mahling@googlemail.com> 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
> busybox@busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic