fc_rand(): 'do { ... } while (size > 1)' run once for size == 1
This means that fc_rand(1) (or fc_rand(0) ) no longer change the random state at all. While it's unlikely that anything has relied on the old behavior of any fc_rand() call to change random state, it's possible that this reveals some subtle bug.
Reply To cazfi
it's possible that this reveals some subtle bug.
With risk like this, and issue being fixed being so minor -> not to 3.0.7 in the last minute.
Pushed to branches other than S3_0. S3_0 waiting for 3.0.7 release.
fc_rand() (actually fc_rand_debug() ) is not supposed to do any work for (size <= 1), as it even has a comment about initializing stuff for such size:
/*
* These assignments are only here to make the compiler
* happy. Since each usage is guarded with a if (size > 1).
*/
But the loop there is a "do ... while()" one, so it always execute once.