iPXE uses currticks() (along with the MAC address(es) of any network devices) to seed the (non-cryptographic) random number generator. The current implementation of linux_currticks() ensures that the first call to currticks() will always return zero; this results in identical random number sequences on each run of iPXE on a given machine. This can cause odd-looking behaviour due to e.g. the reuse of local TCP port numbers. Fix by effectively rounding down the start time recorded by linux_currticks() to the nearest whole second; this makes it unlikely that consecutive runs of iPXE will use the exact same RNG sequence. (Note that none of this affects the cryptographic RNG, which uses /dev/random as a source of entropy.) Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
55 |
|
55 |
|
56 |
|
56 |
|
57 |
|
57 |
|
|
58 |
|
|
|
59 |
|
|
|
60 |
|
|
|
61 |
|
|
|
62 |
|
|
|
63 |
|
|
58 |
|
64 |
|
59 |
|
65 |
|
60 |
|
66 |
|
|
|
||
71 |
|
77 |
|
72 |
|
78 |
|
73 |
|
79 |
|
74 |
|
|
|
|
80 |
|
|
75 |
|
81 |
|
76 |
|
82 |
|
77 |
|
83 |
|