summaryrefslogtreecommitdiffstats
path: root/divesite.c
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2015-02-14 16:16:03 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-02-14 07:53:13 -0800
commit0f2d0211c3cfebf2513969113bd4f992194d10da (patch)
tree6f1d35cadfb0aa138c02aed6987b70fd0e104511 /divesite.c
parent56de6b73f67d5ddeec74153303a27866e39279c7 (diff)
downloadsubsurface-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.c8
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;
}