diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2015-02-14 16:16:03 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-02-14 07:53:13 -0800 |
commit | 0f2d0211c3cfebf2513969113bd4f992194d10da (patch) | |
tree | 6f1d35cadfb0aa138c02aed6987b70fd0e104511 /divesite.c | |
parent | 56de6b73f67d5ddeec74153303a27866e39279c7 (diff) | |
download | subsurface-0f2d0211c3cfebf2513969113bd4f992194d10da.tar.gz |
divesite.c: use rand() instead of random()
random() is POSIX and seems to be missing in MINGW.
it can return a 64bit (if 'long' is 64bit) but
given ID's are 32bit rand() should suffice.
also random() is technically a better algorithm but for
cryptographically unsafe usage like generating IDs the
stdlib's LCPRNG rand() should siffuce.
also this patch makes it so that a true 32bit random value
is returned. how random it is, is another topic.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'divesite.c')
-rw-r--r-- | divesite.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/divesite.c b/divesite.c index 4f236017f..f7f6afea1 100644 --- a/divesite.c +++ b/divesite.c @@ -39,8 +39,12 @@ static uint32_t dive_site_getUniqId() { uint32_t id = 0; - while (id == 0 || get_dive_site_by_uuid(id)) - id = random() + random(); + while (id == 0 || get_dive_site_by_uuid(id)) { + id = rand() & 0xff; + id |= (rand() & 0xff) << 8; + id |= (rand() & 0xff) << 16; + id |= (rand() & 0xff) << 24; + } return id; } |