diff options
Diffstat (limited to 'sys-utils/ipcmk.c')
-rw-r--r-- | sys-utils/ipcmk.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/sys-utils/ipcmk.c b/sys-utils/ipcmk.c index a862ba1a2..3ff021e94 100644 --- a/sys-utils/ipcmk.c +++ b/sys-utils/ipcmk.c @@ -32,32 +32,31 @@ #include "c.h" #include "nls.h" +#include "randutils.h" #include "strutils.h" #include "closestream.h" -static key_t create_key(void) -{ - struct timeval now; - gettimeofday(&now, NULL); - srandom(now.tv_usec); - return random(); -} - static int create_shm(size_t size, int permission) { - key_t key = create_key(); + key_t key; + + random_get_bytes(&key, sizeof(key)); return shmget(key, size, permission | IPC_CREAT); } static int create_msg(int permission) { - key_t key = create_key(); + key_t key; + + random_get_bytes(&key, sizeof(key)); return msgget(key, permission | IPC_CREAT); } static int create_sem(int nsems, int permission) { - key_t key = create_key(); + key_t key; + + random_get_bytes(&key, sizeof(key)); return semget(key, nsems, permission | IPC_CREAT); } |