From 27f49610afe5ca8fdce780490ec22def39bbbe3c Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sat, 20 Mar 2004 21:51:12 +0000 Subject: [PATCH] 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 . --- Lib/CGIHTTPServer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Lib/CGIHTTPServer.py b/Lib/CGIHTTPServer.py index 52e04e9902..9e118b2407 100644 --- a/Lib/CGIHTTPServer.py +++ b/Lib/CGIHTTPServer.py @@ -120,7 +120,7 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): 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 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): 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 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): 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: -- 2.50.1