mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
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>
This commit is contained in:
parent
56de6b73f6
commit
0f2d0211c3
1 changed files with 6 additions and 2 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue