diff options
author | Ned Deily <nad@acm.org> | 2014-07-13 05:12:39 (GMT) |
---|---|---|
committer | Ned Deily <nad@acm.org> | 2014-07-13 05:12:39 (GMT) |
commit | 217f4cd7ee587310587f70c28cd3b25c722275ba (patch) | |
tree | 889a13ade493f1ce40960aeb9b59c3f289951df4 /Lib/http/server.py | |
parent | ac4b7f705a9194d9f5392f7aa7e4f66ac3e36f8b (diff) | |
parent | 915a30fb0db8d4fc09cdf2f91db103edb5ad2cef (diff) | |
download | cpython-217f4cd7ee587310587f70c28cd3b25c722275ba.zip cpython-217f4cd7ee587310587f70c28cd3b25c722275ba.tar.gz cpython-217f4cd7ee587310587f70c28cd3b25c722275ba.tar.bz2 |
Issue #21323: Fix http.server to again handle scripts in CGI subdirectories,
broken by the fix for security issue #19435. Patch by Zach Byrne.
Diffstat (limited to 'Lib/http/server.py')
-rw-r--r-- | Lib/http/server.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Lib/http/server.py b/Lib/http/server.py index 6a56539..7d3b506 100644 --- a/Lib/http/server.py +++ b/Lib/http/server.py @@ -994,16 +994,16 @@ class CGIHTTPRequestHandler(SimpleHTTPRequestHandler): def run_cgi(self): """Execute a CGI script.""" dir, rest = self.cgi_info - - i = rest.find('/') + path = dir + '/' + rest + i = path.find('/', len(dir)+1) while i >= 0: - nextdir = rest[:i] - nextrest = rest[i+1:] + nextdir = path[:i] + nextrest = path[i+1:] scriptdir = self.translate_path(nextdir) if os.path.isdir(scriptdir): dir, rest = nextdir, nextrest - i = rest.find('/') + i = path.find('/', len(dir)+1) else: break |