diff options
Diffstat (limited to 'sysdeps/posix')
-rw-r--r-- | sysdeps/posix/mkstemp.c | 2 | ||||
-rw-r--r-- | sysdeps/posix/mktemp.c | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/sysdeps/posix/mkstemp.c b/sysdeps/posix/mkstemp.c index b3c8b64..3d8be9c 100644 --- a/sysdeps/posix/mkstemp.c +++ b/sysdeps/posix/mkstemp.c @@ -53,7 +53,7 @@ mkstemp (template) /* Get some more or less random data. */ __gettimeofday (&tv, NULL); - value += tv.tv_usec | getpid (); + value += ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ getpid (); for (count = 0; count < TMP_MAX; ++count) { diff --git a/sysdeps/posix/mktemp.c b/sysdeps/posix/mktemp.c index 6bbc4c0..ad5cb1d 100644 --- a/sysdeps/posix/mktemp.c +++ b/sysdeps/posix/mktemp.c @@ -35,7 +35,7 @@ mktemp (template) { static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - static uint32_t value; + static uint64_t value; struct timeval tv; char *XXXXXX; size_t len; @@ -53,12 +53,12 @@ mktemp (template) /* Get some more or less random data. */ __gettimeofday (&tv, NULL); - value += tv.tv_usec | getpid (); + value += ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec ^ getpid (); for (count = 0; count < TMP_MAX; ++count) { struct stat ignored; - uint32_t v = value; + uint64_t v = value; /* Fill in the random bits. */ XXXXXX[0] = letters[v % 62]; |