mpz_mul memory allocation bug

Torbjörn Granlund tg at
Thu Jun 25 10:32:18 UTC 2015

Daniel Kochmański <dkochmanski at> 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
       change.  */
  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 mailing list