Issue #9871: Prevent IDLE 3 crash when given byte stings

with invalid hex escape sequences, like b'\x0'.
(Original patch by Claudiu Popa.)
This commit is contained in:
Ned Deily 2011-09-14 14:56:32 -07:00
commit 86ca04ccc7
4 changed files with 12 additions and 7 deletions

View File

@ -643,9 +643,9 @@ class ModifiedInterpreter(InteractiveInterpreter):
text = tkconsole.text
text.tag_remove("ERROR", "1.0", "end")
type, value, tb = sys.exc_info()
msg = value.msg or "<no detail available>"
lineno = value.lineno or 1
offset = value.offset or 0
msg = getattr(value, 'msg', '') or value or "<no detail available>"
lineno = getattr(value, 'lineno', '') or 1
offset = getattr(value, 'offset', '') or 0
if offset == 0:
lineno += 1 #mark end of offending line
if lineno == 1:

View File

@ -101,10 +101,10 @@ class ScriptBinding:
try:
# If successful, return the compiled code
return compile(source, filename, "exec")
except (SyntaxError, OverflowError) as value:
msg = value.msg or "<no detail available>"
lineno = value.lineno or 1
offset = value.offset or 0
except (SyntaxError, OverflowError, ValueError) as value:
msg = getattr(value, 'msg', '') or value or "<no detail available>"
lineno = getattr(value, 'lineno', '') or 1
offset = getattr(value, 'offset', '') or 0
if offset == 0:
lineno += 1 #mark end of offending line
pos = "0.0 + %d lines + %d chars" % (lineno-1, offset-1)

View File

@ -753,6 +753,7 @@ Remi Pointel
Guilherme Polo
Michael Pomraning
Iustin Pop
Claudiu Popa
John Popplewell
Amrit Prem
Paul Prescod

View File

@ -274,6 +274,10 @@ Core and Builtins
Library
-------
- Issue #9871: Prevent IDLE 3 crash when given byte stings
with invalid hex escape sequences, like b'\x0'.
(Original patch by Claudiu Popa.)
- Issue #12306: Expose the runtime version of the zlib C library as a constant,
ZLIB_RUNTIME_VERSION, in the zlib module. Patch by Torsten Landschoff.