Prevent crash when VTParameters::subspan is out of range #15235
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of the Pull Request
There are certain escape sequences that use the
VTParameters::subspan
method to access a subsection of the provided parameter list. When the
parameter list is empty, that
subspan
call can end up using an offsetthat is out of range, which causes the terminal to crash. This PR stops
that from happening by clamping the offset so it's in range.
References and Relevant Issues
This bug effected the
DECCARA
andDECRARA
operations introduced inPR #14285, and the
DECPS
operation introduced in PR #13208.Validation Steps Performed
I've manually confirmed that the sequences mentioned above are no longer
crashing when executed with an empty parameter list, and I've added a
little unit test that checks
VTParameters::subspan
method is returningthe expected results when passed an offset that is out of range.
PR Checklist