Fix crash when incorrectly accessing a compressed vector v
via v{...}[...]
or v{...}{...}
as if it was a matrix
#4442
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.
For a compressed vector
v
, writing code involvingv{...}[...]
andv{...}{...}
would crash GAP.A subset of this was originally reported by me in 2013 (on the old GAP issue
tracker, hence the issue number 312 you may see inside this PR is not valid
here on GitHub), and later fixed with a workaround. However, back then I did
not realize that there are in total four places that needed the fix, and so
only fixed one of them. I also thought it was just a workaround for a deeper
issue. Upon reanalyzing, I believe this was wrong; the real bug always was
lack of input validation combined with an incorrect use of a feature for
accessing slices of matrices with a vector as input instead of a matrix.
For further details, please read the comment in the test file in this patch.