Commit 79746426 authored by Ned Deily's avatar Ned Deily

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

with invalid hex escape sequences, like b'\x0'.
(Original patch by Claudiu Popa.)
parent 962055d3
...@@ -643,9 +643,9 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -643,9 +643,9 @@ class ModifiedInterpreter(InteractiveInterpreter):
text = tkconsole.text text = tkconsole.text
text.tag_remove("ERROR", "1.0", "end") text.tag_remove("ERROR", "1.0", "end")
type, value, tb = sys.exc_info() type, value, tb = sys.exc_info()
msg = value.msg or "<no detail available>" msg = getattr(value, 'msg', '') or value or "<no detail available>"
lineno = value.lineno or 1 lineno = getattr(value, 'lineno', '') or 1
offset = value.offset or 0 offset = getattr(value, 'offset', '') or 0
if offset == 0: if offset == 0:
lineno += 1 #mark end of offending line lineno += 1 #mark end of offending line
if lineno == 1: if lineno == 1:
......
...@@ -101,10 +101,10 @@ class ScriptBinding: ...@@ -101,10 +101,10 @@ class ScriptBinding:
try: try:
# If successful, return the compiled code # If successful, return the compiled code
return compile(source, filename, "exec") return compile(source, filename, "exec")
except (SyntaxError, OverflowError) as value: except (SyntaxError, OverflowError, ValueError) as value:
msg = value.msg or "<no detail available>" msg = getattr(value, 'msg', '') or value or "<no detail available>"
lineno = value.lineno or 1 lineno = getattr(value, 'lineno', '') or 1
offset = value.offset or 0 offset = getattr(value, 'offset', '') or 0
if offset == 0: if offset == 0:
lineno += 1 #mark end of offending line lineno += 1 #mark end of offending line
pos = "0.0 + %d lines + %d chars" % (lineno-1, offset-1) pos = "0.0 + %d lines + %d chars" % (lineno-1, offset-1)
......
...@@ -705,6 +705,7 @@ Jean-François Piéronne ...@@ -705,6 +705,7 @@ Jean-François Piéronne
Guilherme Polo Guilherme Polo
Michael Pomraning Michael Pomraning
Iustin Pop Iustin Pop
Claudiu Popa
John Popplewell John Popplewell
Amrit Prem Amrit Prem
Paul Prescod Paul Prescod
......
...@@ -25,6 +25,10 @@ Core and Builtins ...@@ -25,6 +25,10 @@ Core and Builtins
Library 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 #8933: distutils' PKG-INFO files will now correctly report - Issue #8933: distutils' PKG-INFO files will now correctly report
Metadata-Version: 1.1 instead of 1.0 if a Classifier or Download-URL field is Metadata-Version: 1.1 instead of 1.0 if a Classifier or Download-URL field is
present. present.
......
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