SF patch 508730 CGIHTTPServer execfile should save cwd
UNTESTED!!!
This simple two-line patch has been sitting on SF for more than 2 years.
I'm guessing it's because nobody knows how to test it -- I sure don't.
It doesn't look like you can get to this part of the code on Unixish
or Windows systems, so the "how to test it?" puzzle has more than one
part. OTOH, if this is dead code, it doesn't matter either if I just
broke it <wink>.
diff --git a/Lib/CGIHTTPServer.py b/Lib/CGIHTTPServer.py
index 52e04e9..9e118b2 100644
--- a/Lib/CGIHTTPServer.py
+++ b/Lib/CGIHTTPServer.py
@@ -120,7 +120,7 @@
self.send_error(404, "No such CGI script (%r)" % scriptname)
return
if not os.path.isfile(scriptfile):
- self.send_error(403, "CGI script is not a plain file (%r)" %
+ self.send_error(403, "CGI script is not a plain file (%r)" %
scriptname)
return
ispy = self.is_python(scriptname)
@@ -273,6 +273,7 @@
save_stdout = sys.stdout
save_stderr = sys.stderr
try:
+ save_cwd = os.getcwd()
try:
sys.argv = [scriptfile]
if '=' not in decoded_query:
@@ -285,6 +286,7 @@
sys.stdin = save_stdin
sys.stdout = save_stdout
sys.stderr = save_stderr
+ os.chdir(save_cwd)
except SystemExit, sts:
self.log_error("CGI script exit status %s", str(sts))
else: