[3.10] gh-91700: Validate the group number in conditional expression in RE (GH-91702) (GH-91831)

In expression (?(group)...) an appropriate re.error is now
raised if the group number refers to not defined group.

Previously it raised RuntimeError: invalid SRE code.
(cherry picked from commit 48ec61a89a)
This commit is contained in:
Serhiy Storchaka 2022-04-22 21:09:30 +03:00 committed by GitHub
parent 9c18d783c3
commit 080781cd49
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 0 deletions

View file

@ -575,6 +575,8 @@ def test_re_groupref_exists_errors(self):
self.checkPatternError(r'()(?(1)a|b|c)',
'conditional backref with more than '
'two branches', 10)
self.checkPatternError(r'()(?(2)a)',
"invalid group reference 2", 5)
def test_re_groupref_overflow(self):
from sre_constants import MAXGROUPS