[libc] Always use a non-zero seed for the (non-crypto) RNG
authorMichael Brown <mcb30@ipxe.org>
Thu, 9 Jun 2016 07:39:25 +0000 (08:39 +0100)
committerMichael Brown <mcb30@ipxe.org>
Thu, 9 Jun 2016 07:44:32 +0000 (08:44 +0100)
commit2c197517f2a82970ab6866e197f06a3099418324
treee0ac644e77307e80f549a926b503e302b42b4e5d
parentf6e8b800be5d8656aa2b10827cf7ea93cfcf5048
[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>
src/core/random.c