Fix Z(6,3) segfaulting, and incorrect spelling of "finfield.c" #1029
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.
The crash occurred because upon calling Z(q,d), the kernel function
FuncZ2
simply computesq^d
, and only checks whether it is less or equal 65536, but does not verify that it is a prime power. This is not so bad, as it next callsFiniteField
, which actually catches this -- and return 0. But thenFuncZ2
blindly passes that value toNEW_FFE
, which returned an invalid FFE object. The segfault then happens once GAP tries to do anything with that object, e.g. print it to the user...The other commit replaces
finifield.c
byfinfield.c
insideGVarFilts[]
,GVarFuncs[]
andInitKernel()
. These strings are printed if you do e.g.Display(Z)
in GAP, and having a correct filename helps with quickly locating the source code... :)