]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
ipcmk: use random_get_bytes() to generate IPC keys
authorKarel Zak <kzak@redhat.com>
Thu, 24 Jan 2013 15:27:04 +0000 (16:27 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 24 Jan 2013 15:27:04 +0000 (16:27 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
sys-utils/ipcmk.c

index a862ba1a2807862465158d3af5be86b4cce68087..3ff021e9430d815a2ae457a5b7c54af7f6023e0c 100644 (file)
 
 #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);
 }