compat_urllib_parse_unquote: crash fix: only decode valid hex

on python 2 the following has a { "crash_rate": "100%" } of the time
as it tries to parse '" ' as hex.
This commit is contained in:
fnord 2015-07-15 15:13:56 -05:00
parent 5eb778bf4d
commit e37c932fca

View file

@ -94,6 +94,8 @@ def compat_urllib_parse_unquote(string, encoding='utf-8', errors='replace'):
try: try:
if not item: if not item:
raise ValueError raise ValueError
if not re.match('[0-9a-fA-F][0-9a-fA-F]',item[:2]):
raise ValueError
pct_sequence += item[:2].decode('hex') pct_sequence += item[:2].decode('hex')
rest = item[2:] rest = item[2:]
if not rest: if not rest: