Jeff Epler
bd69a0ddef
lib/re1.5: Check stack during compilecode.
...
Otherwise, a very deeply nested regular expression like
re.compile("(" * 65536)
can exhaust the host stack during the compile phase. This turns
that into a `RuntimeError: maximum recursion depth exceeded`
instead.
This crash was found via fuzzing.
Signed-off-by: Jeff Epler <jepler@unpythonic.net >
2026-04-15 16:01:21 +10:00
Damien George
64193c7de9
lib/re1.5: Add support for named classes in class sets.
...
Total code size change of this and previous commit:
bare-arm: +0 +0.000%
minimal x86: +0 +0.000%
unix x64: +32 +0.004% standard
stm32: +24 +0.006% PYBV10
cc3200: +16 +0.009%
esp8266: +20 +0.003% GENERIC
esp32: +44 +0.003% GENERIC[incl +8(data)]
mimxrt: +32 +0.009% TEENSY40
renesas-ra: +24 +0.004% RA6M2_EK
nrf: +0 +0.000% pca10040
rp2: +24 +0.005% PICO
samd: +32 +0.012% ADAFRUIT_ITSYBITSY_M4_EXPRESS
Addresses issue #7920 .
Signed-off-by: Damien George <damien@micropython.org >
2023-01-18 09:15:32 +11:00
Damien George
bd86ce5f82
lib/re1.5: Reduce code size when checking for named class char.
...
Signed-off-by: Damien George <damien@micropython.org >
2023-01-18 09:15:32 +11:00
Damien George
d1d172f536
lib/re1.5: Move re1.5 code from extmod to lib.
...
It's third-party code, and not necessarily tied to extmod.
Signed-off-by: Damien George <damien@micropython.org >
2021-07-12 16:36:26 +10:00