Skip to content

bpo-47256: re module, limit the maximum capturing group to 1,073,741,823, increasing the depth of backtracking.#32411

Merged
serhiy-storchaka merged 5 commits into
mainfrom
unknown repository
Apr 18, 2022
Merged

bpo-47256: re module, limit the maximum capturing group to 1,073,741,823, increasing the depth of backtracking.#32411
serhiy-storchaka merged 5 commits into
mainfrom
unknown repository

Conversation

@ghost

@ghost ghost commented Apr 8, 2022

Copy link
Copy Markdown

Closes #91412.

@ghost

ghost commented Apr 12, 2022

Copy link
Copy Markdown
Author

I would like to remove the variable i in the SRE(match) function, just use a few variables with a smaller scope.
This change can be done in this PR or in a code polish PR.

Comment thread Misc/NEWS.d/next/Library/2022-04-08-14-55-55.bpo-47256.X2mFpt.rst Outdated
Comment thread Modules/_sre/sre.h Outdated
Comment thread Modules/_sre/sre.h Outdated
@serhiy-storchaka

Copy link
Copy Markdown
Member

I would like to remove the variable i in the SRE(match) function, just use a few variables with a smaller scope.

Do it.

wjssz added 4 commits April 16, 2022 13:02
These types are kept as Py_ssize_t:
  - PatternObject.groups
  - MatchObject.lastindex
  - MatchObject.groups

- On 32 bit platform: 36 bytes, no change.  (msvc2022)
- On 64 bit platform: 72 bytes -> 64 bytes. (msvc2022/gcc9.4)
change the type of `SRE(match_context).jump` from Py_ssize_t to int

- On 32 bit platform: 36 bytes, no change.  (msvc2022)
- On 64 bit platform: 64 bytes -> 56 bytes. (msvc2022/gcc9.4)

And make the order of `DO_JUMPX` macro and `SRE(match_context)` struct consistent.
DATA_STACK_(PUSH|POP) macros use the size multiple time, now computed value is propagated.
@ghost

ghost commented Apr 16, 2022

Copy link
Copy Markdown
Author

Improved as your comments locally.
If you can find another review, I would like to update this PR.

@serhiy-storchaka

Copy link
Copy Markdown
Member

I have no other comments. Please update this PR.

@ghost

ghost commented Apr 16, 2022

Copy link
Copy Markdown
Author

I have no other comments. Please update this PR.

I mean reviewer...

Comment thread Modules/_sre/sre_lib.h Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

re: limit the maximum capturing group to 1,073,741,823, reduce sizeof(match_context).

4 participants