[Python-checkins] r51856 - python/trunk/Lib/test/crashers/infinite_loop_re.py

neal.norwitz python-checkins at python.org
Mon Sep 11 06:32:57 CEST 2006


Author: neal.norwitz
Date: Mon Sep 11 06:32:57 2006
New Revision: 51856

Added:
   python/trunk/Lib/test/crashers/infinite_loop_re.py   (contents, props changed)
Log:
Add a "crasher" taken from the sgml bug report referenced in the comment

Added: python/trunk/Lib/test/crashers/infinite_loop_re.py
==============================================================================
--- (empty file)
+++ python/trunk/Lib/test/crashers/infinite_loop_re.py	Mon Sep 11 06:32:57 2006
@@ -0,0 +1,16 @@
+
+# This was taken from http://python.org/sf/1541697
+# It's not technically a crasher.  It may not even truly be infinite,
+# however, I haven't waited a long time to see the result.  It takes
+# 100% of CPU while running this and should be fixed.
+
+import re
+starttag = re.compile(r'<[a-zA-Z][-_.:a-zA-Z0-9]*\s*('
+        r'\s*([a-zA-Z_][-:.a-zA-Z_0-9]*)(\s*=\s*'
+        r'(\'[^\']*\'|"[^"]*"|[-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~@]'
+        r'[][\-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~\'"@]*(?=[\s>/<])))?'
+    r')*\s*/?\s*(?=[<>])')
+
+if __name__ == '__main__':
+    foo = '<table cellspacing="0" cellpadding="0" style="border-collapse'
+    starttag.match(foo)


More information about the Python-checkins mailing list