[originally from svn r2201]
}
read_random_seed(func);
+ /* Update the seed immediately, in case another instance uses it. */
+ random_save_seed();
gsps = NULL;
mod = GetModuleHandle("KERNEL32");
if (random_active) {
random_get_savedata(&data, &len);
write_random_seed(data, len);
+ sfree(data);
}
}
void random_get_savedata(void **data, int *len)
{
+ void *buf = smalloc(POOLSIZE / 2);
random_stir();
- *data = pool.pool + pool.poolpos;
+ memcpy(buf, pool.pool + pool.poolpos, POOLSIZE / 2);
*len = POOLSIZE / 2;
+ *data = buf;
+ random_stir();
}