1
0
Fork 0

tools: gen_eth_addr: add getpid() to time(0) to avoid duplicated seed

As 'time(0) | getpid()' will have a lot of duplicated value. It is not a
expected behavior. We expect different value for the seed when when run
it in many times.

So this patch will left shift the getpid() and add to time(0). That
avoid duplicated value.

Test command is like:
  % RUN=0; while [ $RUN -lt 10000 ]; do
  tools/gen_eth_addr; RUN=$(($RUN+1)); done | sort | uniq | wc -l
  10000

This patch is incorporated with suggestions made by Wolfgang Denk and Andreas
Bießmann. Thanks them a lot.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
Acked-by: Andreas Bießmann <andreas.devel@googlemail.com>
Acked-by: Wolfgang Denk <wd@denx.de>
Tested-by: Wolfgang Denk <wd@denx.de>
utp
Josh Wu 2015-09-16 18:21:04 +08:00 committed by Tom Rini
parent 1090a56c87
commit 3e4dad5032
1 changed files with 1 additions and 1 deletions

View File

@ -15,7 +15,7 @@ main(int argc, char *argv[])
{
unsigned long ethaddr_low, ethaddr_high;
srand(time(0) | getpid());
srand(time(0) + (getpid() << 8));
/*
* setting the 2nd LSB in the most significant byte of