mpz_mul memory allocation bug
tg at gmplib.org
Thu Jun 25 10:32:18 UTC 2015
Daniel Kochmański <dkochmanski at turtle-solutions.eu> writes:
I've encontered problem with GMP 6.0.0 when used with ECL (Embeddable
Common-Lisp). Memory is managed by bdwgc and gmp seems to allocate
memory somewhere, where it shouldn't, resulting in:
(SIGABRT) "Duplicate large block deallocation"
OK. so GMP allocates memory where it shouldn't (whatever that means) and
a LISP system as a result deallocates a memory area twice... Your line
of reasoning is not crystal clear. :-)
Problem is absent in GMP 4.2.1. After tracking problem, I've came to
conclusion, that it is caused by `mpn_fft_mul', which is called by
`mpn_sqr', being optimization for corner-case, when `mpz_mul' is called
with the same bignum as second and third argument.
Removing optimization "fixes" problem. `mpn_fft_mul' is called, when
size n isn't below `SQR_FFT_THRESHOLD', and comment:
/* The current FFT code allocates its own space. That should probably
might be a clue, that this is a place of problem.
This comment does not say that we knowingly do something that is buggy.
It is rather a suggestion for a code cleanup.
If you have a self-contained tests case for GMP where it misbehaves,
please report it to us.
You present report is nothing we can work with, I'm afraid.
Please encrypt, key id 0xC8601622
More information about the gmp-bugs