summaryrefslogtreecommitdiffstats
path: root/source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch')
-rw-r--r--source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch b/source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch
new file mode 100644
index 000000000..d5dabb4a4
--- /dev/null
+++ b/source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch
@@ -0,0 +1,50 @@
+From e1df30fbc2e2167a982c0e77a7ebee28f4dd0800 Mon Sep 17 00:00:00 2001
+From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date: Thu, 25 Jul 2019 11:22:17 -0300
+Subject: [PATCH] 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 --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];
+--
+2.9.3
+
+