Function test_inverse_scalar
contains:
(var ? secp256k1_scalar_inverse_var : secp256k1_scalar_inverse_var)(&l, x); /* l = 1/x */
The two sides of the condition are the same function. This seems to be an error, as there also exists a non-var function, named
secp256k1_scalar_inverse
.
Make test_inverse_scalar
use this other function when var
is false.
This issue was found using clang’s static analyzer, which reported a “Logic error: Identical expressions in conditional expression” (with checker alpha.core.IdenticalExpr
).