-
Notifications
You must be signed in to change notification settings - Fork 542
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add more checking for regnode offset overflowing
This is part of the ongoing failures in [perl #133921]. The bottom line cause is that there are generally 16 bits available for the address of the next regnode. On very large patterns, this may not be enough. When that happens, a long jump is used instead. What previous commits have done is to insert tests in a loop to detect that overflow isn't going to occur. But it turns out that there are other places where such overflow could occur. The real solution should be to detect overflow in the base level routine that would otherwise get things wrong. This entails making that routine be able to return failure. It turns out that another function is used under DEBUGGING, so that one must be changed as well. And the calls where it is possible for this to overflow are changed to look for failure return and proceed appropriately, which is to set a flag that we need to use long jumps, and restart the parse.
- Loading branch information
1 parent
912b808
commit bf848a1
Showing
4 changed files
with
99 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters