uhttpd/file: fix string out of buffer range on uh_defer_script master
authorLiangbin Lian <jjm2473@gmail.com>
Mon, 24 Apr 2023 03:53:16 +0000 (11:53 +0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 25 Jun 2023 17:24:45 +0000 (19:24 +0200)
commit34a8a74dbdec3c0de38abc1b08f6a73c51263792
tree79c8039dcc147b4c9971605983844ab49418edaa
parent47561aa13574068403d48f13ea310f8511057b2b
uhttpd/file: fix string out of buffer range on uh_defer_script

if a url path length is multiple of 8, tailing zero will be trimed out on uh_defer_script, cause a strangle error.
it's simple to reproduce.

1. create a luci controller, register a entry with path length multiple of 8 (including '/cgi-bin/'), for example, '/cgi-bin/luci/admin/system/admin'.
2. set uhttpd max_requests to 1, and restart uhttpd
3. request '/cgi-bin/luci/admin/system/admin' with at least 2 process
4. some responses will produce a error:
```
Unable to launch the requested CGI program:
  /www/cgi-bin/luci: No such file or directory
```

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
file.c