Issue 508730: CGIHTTPServer execfile should save cwd (original) (raw)
This issue has been migrated to GitHub: https://github.com/python/cpython/issues/35981
classification
Title: | CGIHTTPServer execfile should save cwd | |
---|---|---|
Type: | Stage: | |
Components: | None | Versions: |
process
Status: | closed | Resolution: | accepted |
---|---|---|---|
Dependencies: | Superseder: | ||
Assigned To: | Nosy List: | akuchling, brett.cannon, dgrassi, tim.peters | |
Priority: | normal | Keywords: | patch |
Created on 2002-01-25 23:41 by dgrassi, last changed 2022-04-10 16:04 by admin. This issue is now closed.
Messages (6) | ||
---|---|---|
msg38799 - (view) | Author: Dan Grassi (dgrassi) | Date: 2002-01-25 23:41 |
In CGIHTTPServer when running a script via execfile the cwd is not saved and restored. If the executed script changes the cwd subsequent requests will fail because self.translate_path in SimpleHTTPServer relies on the cwd. One fix is to suround the execfile call with save_cwd = os.getcwd() and os.chdir(save_cwd) Here is the proposed fix starting at line 254: + save_cwd = os.getcwd() try: try: sys.argv = [scriptfile] if '=' not in decoded_query: sys.argv.append(decoded_query) sys.stdout = self.wfile sys.stdin = self.rfile execfile(scriptfile, {"__name__": "__main__"}) finally: + os.chdir(save_cwd) | ||
msg38800 - (view) | Author: Dan Grassi (dgrassi) | Date: 2002-01-25 23:48 |
Logged In: YES user_id=366473 | ||
msg38801 - (view) | Author: Dan Grassi (dgrassi) | Date: 2002-01-25 23:55 |
Logged In: YES user_id=366473 Here is the (hopefully) properly indented fix: + save_cwd = os.getcwd() try: try: sys.argv = [scriptfile] if '=' not in decoded_query: sys.argv.append(decoded_query) sys.stdout = self.wfile sys.stdin = self.rfile execfile(scriptfile, {"__name__": "__main__"}) finally: + os.chdir(save_cwd) | ||
msg38802 - (view) | Author: Brett Cannon (brett.cannon) * ![]() |
Date: 2003-05-17 00:47 |
Logged In: YES user_id=357491 Since a patch is in the comments I am making this a patch instead of a bug. As for the idea, it seems good to me. Anyone else care to comment? | ||
msg38803 - (view) | Author: A.M. Kuchling (akuchling) * ![]() |
Date: 2003-10-24 12:14 |
Logged In: YES user_id=11375 It looks like a bug worth fixing, and the proposed patch seems reasonable. | ||
msg38804 - (view) | Author: Tim Peters (tim.peters) * ![]() |
Date: 2004-03-20 22:03 |
Logged In: YES user_id=31435 I checked this in, but have no idea how to test it. In part that's because the execfile path doesn't appear to be taken on Unixish *or* Windows systems. Is this entire block of code actually unreachable (== is there an OS now that doesn't have fork or popen2 or popen3?). Lib/CGIHTTPServer.py; new revision: 1.34 |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-10 16:04:55 | admin | set | github: 35981 |
2002-01-25 23:41:54 | dgrassi | create |