]> granicus.if.org Git - python/commit
Fixed sre bug "[#581080] Provoking infinite scanner loops".
authorGustavo Niemeyer <gustavo@niemeyer.net>
Thu, 7 Nov 2002 03:28:56 +0000 (03:28 +0000)
committerGustavo Niemeyer <gustavo@niemeyer.net>
Thu, 7 Nov 2002 03:28:56 +0000 (03:28 +0000)
commitc523b04b0f5cf76b503cfbed17fec95f61c1bd2e
tree7017f4c0a06d96cce4af10ae4916fb9d032c2628
parent65fe8dda1588017bb5f15c8ab2fdbfb3b3c0bac7
Fixed sre bug "[#581080] Provoking infinite scanner loops".

This bug happened because: 1) the scanner_search and scanner_match methods
were not checking the buffer limits before increasing the current pointer;
and 2) SRE_SEARCH was using "if (ptr == end)" as a loop break, instead of
"if (ptr >= end)".

* Modules/_sre.c
  (SRE_SEARCH): Check for "ptr >= end" to break loops, so that we don't
  hang forever if a pointer passing the buffer limit is used.
  (scanner_search,scanner_match): Don't increment the current pointer
  if we're going to pass the buffer limit.

* Misc/NEWS
  Mention the fix.
Misc/NEWS
Modules/_sre.c