mirror of
https://github.com/ipxe/ipxe
synced 2025-12-25 17:12:40 +03:00
[libc] Always use a non-zero seed for the (non-crypto) RNG
The non-cryptographic RNG implemented by random() has the property that a seed value of zero will result in a generated sequence of all-zero values. This situation can arise if currticks() returns zero at start of day. Work around this problem by falling back to a fixed non-zero seed if necessary. This has no effect on the separate DRBG used by cryptographic code. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -18,6 +18,8 @@ static int32_t rnd_seed = 0;
|
|||||||
*/
|
*/
|
||||||
void srandom ( unsigned int seed ) {
|
void srandom ( unsigned int seed ) {
|
||||||
rnd_seed = seed;
|
rnd_seed = seed;
|
||||||
|
if ( ! rnd_seed )
|
||||||
|
rnd_seed = 4; /* Chosen by fair dice roll */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user