Prevent segfault on GF(2^e) dense matrix row/column swap #40291
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.
There is currently a problem with n x 0 and 0 x n matrices over GF(2^e). When performing row or column swaps, a segmentation fault is produced. The underlying issue seems to be within the M4RI library. Although the existing library code already has checks for these, they seem to be failing. A simple example to reproduce the problem is:
sage: matrix.zero(GF(4),2,0).with_permuted_rows(Permutation([2,1]))
The issue may be avoided in Sage by only performing swaps on non-empty rows and columns. I have added a simple condition to the swap logic for matrix_gf2e_dense
📝 Checklist
⌛ Dependencies
None