Skip to content

Commit d765dc1

Browse files
committed
re._compiler: bytearray slice fill in _optimize_charset
1 parent 0bf6e31 commit d765dc1

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

Lib/re/_compiler.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,11 @@ def _optimize_charset(charset, iscased=None, fixup=None, fixes=None):
280280
if not hascased:
281281
hascased = any(map(iscased, r))
282282
else:
283-
for i in r:
284-
charmap[i] = 1
283+
end = av[1] + 1
284+
if end > len(charmap):
285+
# Trigger the IndexError growth path below.
286+
raise IndexError
287+
charmap[av[0]:end] = b'\x01' * (end - av[0])
285288
elif op is NEGATE:
286289
out.append((op, av))
287290
elif op is CATEGORY and tail and (CATEGORY, CH_NEGATE[av]) in tail:

0 commit comments

Comments
 (0)