Staging
v0.8.1
https://github.com/python/cpython
Raw File
Tip revision: 95e0b0d1d01249b116655a0b7e95ba9c61d4eefd authored by Larry Hastings on 04 May 2014, 12:06:24 UTC
Version bump for 3.4.1rc1.
Tip revision: 95e0b0d
infinite_loop_re.py

# 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)
back to top