]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-38863: Improve is_cgi() in http.server (GH-17312)
authorSiwon Kang <kkangshawn@gmail.com>
Fri, 22 Nov 2019 09:13:05 +0000 (18:13 +0900)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 22 Nov 2019 09:13:05 +0000 (01:13 -0800)
commit91daa9d7224626dad4bb820924c01b3438ca6e3f
tree7e44a82b5e6093fbe2fa6a4ad890047d52027371
parentb4e5eeac267c436bb60776dc5be771d3259bd298
bpo-38863: Improve is_cgi() in http.server (GH-17312)

is_cgi() function of http.server library does not currently handle a
cgi script if one of the cgi_directories is located at the
sub-directory of given path. Since is_cgi() in CGIHTTPRequestHandler
class separates given path into (dir, rest) based on the first seen
'/', multi-level directories like /sub/dir/cgi-bin/hello.py is divided
into head=/sub, rest=dir/cgi-bin/hello.py then check whether '/sub'
exists in cgi_directories = [..., '/sub/dir/cgi-bin'].
This patch makes the is_cgi() keep expanding dir part to the next '/'
then checking if that expanded path exists in the cgi_directories.

Signed-off-by: Siwon Kang <kkangshawn@gmail.com>
https://bugs.python.org/issue38863
Lib/http/server.py
Lib/test/test_httpservers.py
Misc/NEWS.d/next/Library/2019-11-21-16-30-00.bpo-38863.RkdTjf.rst [new file with mode: 0644]