mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 14:30:06 +00:00
Get new entropy on each attempt __gen_tempname (BZ #15813)
This is missing bit for fully fix BZ#15813 (the other two were fixed
by 359653aaac
).
Checked on x86_64-linux-gnu.
[BZ #15813]
sysdeps/posix/tempname.c (__gen_tempname): get entrypy on each
attempt.
This commit is contained in:
parent
0b8c2f95df
commit
e1df30fbc2
@ -1,3 +1,9 @@
|
||||
2019-08-01 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
|
||||
[BZ #15813]
|
||||
sysdeps/posix/tempname.c (__gen_tempname): get entropy on each
|
||||
attempt.
|
||||
|
||||
2019-08-01 Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
* version.h (RELEASE): Set to "stable".
|
||||
|
@ -186,7 +186,6 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
|
||||
{
|
||||
int len;
|
||||
char *XXXXXX;
|
||||
uint64_t value;
|
||||
unsigned int count;
|
||||
int fd = -1;
|
||||
int save_errno = errno;
|
||||
@ -218,13 +217,13 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
|
||||
/* This is where the Xs start. */
|
||||
XXXXXX = &tmpl[len - 6 - suffixlen];
|
||||
|
||||
/* Get some more or less random data. */
|
||||
RANDOM_BITS (value);
|
||||
value ^= (uint64_t)__getpid () << 32;
|
||||
|
||||
for (count = 0; count < attempts; value += 7777, ++count)
|
||||
uint64_t pid = (uint64_t) __getpid () << 32;
|
||||
for (count = 0; count < attempts; ++count)
|
||||
{
|
||||
uint64_t v = value;
|
||||
uint64_t v;
|
||||
/* Get some more or less random data. */
|
||||
RANDOM_BITS (v);
|
||||
v ^= pid;
|
||||
|
||||
/* Fill in the random bits. */
|
||||
XXXXXX[0] = letters[v % 62];
|
||||
|
Loading…
Reference in New Issue
Block a user