Kaydet (Commit) 8a978f7c authored tarafından Steve Holden's avatar Steve Holden

Fix bug 427345 [related to IE's additional input on POST request].

üst 472e7db5
...@@ -26,6 +26,7 @@ import sys ...@@ -26,6 +26,7 @@ import sys
import urllib import urllib
import BaseHTTPServer import BaseHTTPServer
import SimpleHTTPServer import SimpleHTTPServer
import select
class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
...@@ -199,6 +200,9 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): ...@@ -199,6 +200,9 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
if pid != 0: if pid != 0:
# Parent # Parent
pid, sts = os.waitpid(pid, 0) pid, sts = os.waitpid(pid, 0)
# throw away additional data [see bug #427345]
while select.select([self.rfile], [], [], 0)[0]:
waste = self.rfile.read(1)
if sts: if sts:
self.log_error("CGI script exit status %#x", sts) self.log_error("CGI script exit status %#x", sts)
return return
...@@ -244,6 +248,9 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): ...@@ -244,6 +248,9 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
if self.command.lower() == "post" and nbytes > 0: if self.command.lower() == "post" and nbytes > 0:
data = self.rfile.read(nbytes) data = self.rfile.read(nbytes)
fi.write(data) fi.write(data)
# throw away additional data [see bug #427345]
while select.select([self.rfile._sock], [], [], 0)[0]:
waste = self.rfile._sock.recv(1)
fi.close() fi.close()
shutil.copyfileobj(fo, self.wfile) shutil.copyfileobj(fo, self.wfile)
if self.have_popen3: if self.have_popen3:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment