Uninitialised rng state

Brian Gough bjg@gnu.org
Mon Feb 9 14:46:00 GMT 2009

At Sat, 7 Feb 2009 08:30:41 +0200 (EET),
M Joonas Pihlaja wrote:
> One example is mt19937 whose state has lots of unsigned longs 
> followed by an int.  On a 64 bit machine the size of the state is 
> 5000 bytes of which 4 bytes are pad bytes inserted by the 
> compiler due to the mix of int/ulong.  So later when I twiddle 
> the state valgrind triggers on the uninitialised access. So I was 
> wondering whether gsl_rng_alloc() really ought to calloc the 
> state instead of mallocing it.  Thoughts?
> As a workaround I'm currently clearing the entire state right 
> after calling gsl_rng_alloc() and then calling gsl_rng_set(rng, 
> gsl_rng_default_seed) right after.  This does quell valgrind, but 
> is it a sane thing to do?


Valgrind 3.1 does not detect any errors for me when running the
gsl-1.12 rng test program on x86_64 with gcc 4.0.3 (apart from in the
fread and fwrite functions, where they're expected). 

 Can you send a full bug report to bug-gsl@gnu.org with the program,
complete valgrind error message, version of valgrind and gsl that you
use, and the compiler.  Thanks.

Brian Gough

More information about the Gsl-discuss mailing list