mirror of https://github.com/python/cpython
Fix closes Issue12529 - cgi.parse_header failure on double quotes and
semicolons. Patch by Ben Darnell and Petri Lehtinen.
This commit is contained in:
parent
1e87da16ea
commit
59a06d412d
|
@ -293,7 +293,7 @@ def _parseparam(s):
|
||||||
while s[:1] == ';':
|
while s[:1] == ';':
|
||||||
s = s[1:]
|
s = s[1:]
|
||||||
end = s.find(';')
|
end = s.find(';')
|
||||||
while end > 0 and s.count('"', 0, end) % 2:
|
while end > 0 and (s.count('"', 0, end) - s.count('\\"', 0, end)) % 2:
|
||||||
end = s.find(';', end + 1)
|
end = s.find(';', end + 1)
|
||||||
if end < 0:
|
if end < 0:
|
||||||
end = len(s)
|
end = len(s)
|
||||||
|
|
|
@ -377,6 +377,9 @@ this is the content of the fake file
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
cgi.parse_header('attachment; filename="strange;name";size=123;'),
|
cgi.parse_header('attachment; filename="strange;name";size=123;'),
|
||||||
("attachment", {"filename": "strange;name", "size": "123"}))
|
("attachment", {"filename": "strange;name", "size": "123"}))
|
||||||
|
self.assertEqual(
|
||||||
|
cgi.parse_header('form-data; name="files"; filename="fo\\"o;bar"'),
|
||||||
|
("form-data", {"name": "files", "filename": 'fo"o;bar'}))
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
|
|
Loading…
Reference in New Issue