ash,hush: fix $RANDOM in children being repeated
function old new delta next_random 46 68 +22 forkshell 248 263 +15 expand_vars_to_list 2118 2131 +13 run_pipe 1775 1782 +7 popstring 134 140 +6 builtin_umask 123 121 -2 ash_main 1356 1336 -20 get_local_var_value 125 104 -21 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 5/3 up/down: 63/-43) Total: 20 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
3c39e702d0
commit
76ace254e1
5 changed files with 22 additions and 16 deletions
|
@ -20,6 +20,13 @@ next_random(random_t *rnd)
|
|||
|
||||
uint32_t t;
|
||||
|
||||
if (UNINITED_RANDOM_T(rnd)) {
|
||||
/* Can use monotonic_ns() for better randomness but for now
|
||||
* it is not used anywhere else in busybox... so avoid bloat
|
||||
*/
|
||||
INIT_RANDOM_T(rnd, getpid(), monotonic_us());
|
||||
}
|
||||
|
||||
/* LCG has period of 2^32 and alternating lowest bit */
|
||||
rnd->LCG = 1664525 * rnd->LCG + 1013904223;
|
||||
/* Galois LFSR has period of 2^32-1 = 3 * 5 * 17 * 257 * 65537 */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue