Stack overflow in gmp_get_str when passed a big number

Torbjorn Granlund tg at swox.com
Fri Oct 3 09:14:45 CEST 2008


  > My Scheme compiler (Ikarus Scheme) uses gmp for its bignums.  It uses
  > gmp_get_str to convert bignums to base-10 strings.  It also crashes
  > when converting very large numbers.  I have seen the problem under a
  > Linux (2.6.18) machine with 2GB of ram, but it runs fine under OS X
  > (10.4) with the same amount of ram.  Attached is a small program that
  > exhibits the problem.  Let me know if I can provide more information
  > and please let me know if there is a workaround (other that writing
  > my own conversion routine).  Thanks.
  
  this is usually due to a stack overflow. Some GMP routines allocate memory
  on the stack for a better efficiency, but for large problems this may lead
  to problems. I believe this problem is fixed in the latest versions of GMP,
  or a workaround is to configure GMP with --disable-alloca. See for example
  http://gmplib.org/manual/Debugging.html.
  
With any recent GMP release, --disable-alloca should never be needed.

Aziz doesn't mention the used GMP version, leaving us to guess it.
I guess it is GMP 4.1.x, which I no longer maintain.  :-)

-- 
Torbjörn


More information about the gmp-bugs mailing list