public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc] Get new entropy on each attempt __gen_tempname (BZ #15813)
@ 2019-08-01 11:28 Adhemerval Zanella
0 siblings, 0 replies; only message in thread
From: Adhemerval Zanella @ 2019-08-01 11:28 UTC (permalink / raw)
To: glibc-cvs
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=e1df30fbc2e2167a982c0e77a7ebee28f4dd0800
commit e1df30fbc2e2167a982c0e77a7ebee28f4dd0800
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Thu Jul 25 11:22:17 2019 -0300
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 359653aaacad463).
Checked on x86_64-linux-gnu.
[BZ #15813]
sysdeps/posix/tempname.c (__gen_tempname): get entrypy on each
attempt.
Diff:
---
ChangeLog | 6 ++++++
sysdeps/posix/tempname.c | 13 ++++++-------
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index cdb9e14..17918a1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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".
diff --git a/sysdeps/posix/tempname.c b/sysdeps/posix/tempname.c
index de34694..310df3c 100644
--- a/sysdeps/posix/tempname.c
+++ b/sysdeps/posix/tempname.c
@@ -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];
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-08-01 11:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-01 11:28 [glibc] Get new entropy on each attempt __gen_tempname (BZ #15813) Adhemerval Zanella
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).