From: Ned Deily Date: Wed, 14 Sep 2011 21:49:14 +0000 (-0700) Subject: Issue #9871: Prevent IDLE 3 crash when given byte stings X-Git-Tag: v3.3.0a1~1533^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79746426c439a8a163d95381ffffa1b2fd34348e;p=python Issue #9871: Prevent IDLE 3 crash when given byte stings with invalid hex escape sequences, like b'\x0'. (Original patch by Claudiu Popa.) --- diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index da74729099..43e08f2c78 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -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 "" - lineno = value.lineno or 1 - offset = value.offset or 0 + msg = getattr(value, 'msg', '') or value or "" + 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: diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py index 915e56e40f..26becce018 100644 --- a/Lib/idlelib/ScriptBinding.py +++ b/Lib/idlelib/ScriptBinding.py @@ -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 "" - lineno = value.lineno or 1 - offset = value.offset or 0 + except (SyntaxError, OverflowError, ValueError) as value: + msg = getattr(value, 'msg', '') or value or "" + 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) diff --git a/Misc/ACKS b/Misc/ACKS index 45ab6a44fa..a1edc77b2f 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -705,6 +705,7 @@ Jean-François Piéronne Guilherme Polo Michael Pomraning Iustin Pop +Claudiu Popa John Popplewell Amrit Prem Paul Prescod diff --git a/Misc/NEWS b/Misc/NEWS index d52156d417..5289c3799d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -25,6 +25,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 #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 present.