]> granicus.if.org Git - python/commitdiff
Issue #9871: Prevent IDLE 3 crash when given byte stings
authorNed Deily <nad@acm.org>
Wed, 14 Sep 2011 21:49:14 +0000 (14:49 -0700)
committerNed Deily <nad@acm.org>
Wed, 14 Sep 2011 21:49:14 +0000 (14:49 -0700)
with invalid hex escape sequences, like b'\x0'.
(Original patch by Claudiu Popa.)

Lib/idlelib/PyShell.py
Lib/idlelib/ScriptBinding.py
Misc/ACKS
Misc/NEWS

index da7472909969ebf6ab9930d3080074dde3b6e41e..43e08f2c78d4598783b27097bea8ce543eaa1ef6 100644 (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:
index 915e56e40fb73c6a6dc57ec4c50138c0637308ce..26becce01826def727c2a576a6f0da373e7ed20a 100644 (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)
index 45ab6a44fa7c0600b16e178926efeb15eb431d49..a1edc77b2fe63e902fc3ec6e6f310791ccca51b6 100644 (file)
--- 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
index d52156d417ced2e3367db35ec675e7aaaa7f213d..5289c3799dd24a30e643c11169f57ea3cfe575b0 100644 (file)
--- 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.