summaryrefslogtreecommitdiff
path: root/source/l/glibc
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/glibc')
-rwxr-xr-xsource/l/glibc/glibc.SlackBuild37
-rw-r--r--source/l/glibc/patches/glibc.8a80ee5e2bab17a1f8e1e78fab5c33ac7efa8b29.patch40
-rw-r--r--source/l/glibc/patches/glibc.b0f6679bcd738ea244a14acd879d974901e56c8e.patch28
-rw-r--r--source/l/glibc/patches/glibc.b6d2c4475d5abc05dd009575b90556bdd3c78ad0.patch37
-rw-r--r--source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch50
5 files changed, 172 insertions, 20 deletions
diff --git a/source/l/glibc/glibc.SlackBuild b/source/l/glibc/glibc.SlackBuild
index 0d153064..ba5c01f3 100755
--- a/source/l/glibc/glibc.SlackBuild
+++ b/source/l/glibc/glibc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2006, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,14 +20,12 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-## build glibc-$VERSION for Slackware
-
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=glibc
VERSION=${VERSION:-$(echo glibc-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
CHECKOUT=${CHECKOUT:-""}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# I was considering disabling NSCD, but MoZes talked me out of it. :)
#DISABLE_NSCD=" --disable-nscd "
@@ -157,6 +155,10 @@ apply_patches() {
zcat $CWD/glibc-c-utf8-locale.patch.gz | patch -p1 --verbose || exit 1
# Don't use AM/PM format for date(1). That's just plain crazy.
zcat $CWD/glibc-2.29.en_US.no.am.pm.date.format.diff.gz | patch -p1 --verbose || exit 1
+ # Other regression fixes from git:
+ for git_patch in $CWD/patches/*.patch.gz ; do
+ zcat $git_patch | patch -p1 --verbose || exit 1
+ done
}
# This is going to be the initial $DESTDIR:
@@ -195,32 +197,27 @@ mkdir -p $PKG/var/run/nscd
cd $TMP
rm -rf glibc-$CVSVER
tar xvf $CWD/glibc-$CVSVER.tar.xz \
+ || tar xvf $CWD/glibc-$CVSVER.tar.lz \
|| tar xvf $CWD/glibc-$CVSVER.tar.bz2 \
|| tar xvf $CWD/glibc-$CVSVER.tar.gz
cd glibc-$CVSVER
-chown -R root:root .
-find . -perm 666 -exec chmod 644 {} \;
-find . -perm 664 -exec chmod 644 {} \;
-find . -perm 600 -exec chmod 644 {} \;
-find . -perm 444 -exec chmod 644 {} \;
-find . -perm 400 -exec chmod 644 {} \;
-find . -perm 440 -exec chmod 644 {} \;
-find . -perm 777 -exec chmod 755 {} \;
-find . -perm 775 -exec chmod 755 {} \;
-find . -perm 511 -exec chmod 755 {} \;
-find . -perm 711 -exec chmod 755 {} \;
-find . -perm 555 -exec chmod 755 {} \;
-
-# Clean up leftover CVS directories:
-find . -type d -name CVS -exec rm -r {} \; 2> /dev/null
-
# Apply patches; exit if any fail.
apply_patches
if [ ! $? = 0 ]; then
exit 1
fi
+# Clean up leftover CVS directories:
+find . -type d -name CVS -exec rm -r {} \; 2> /dev/null
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
# Make build directory:
mkdir build-glibc-$VERSION
cd build-glibc-$VERSION || exit 1
diff --git a/source/l/glibc/patches/glibc.8a80ee5e2bab17a1f8e1e78fab5c33ac7efa8b29.patch b/source/l/glibc/patches/glibc.8a80ee5e2bab17a1f8e1e78fab5c33ac7efa8b29.patch
new file mode 100644
index 00000000..2dbdbd9c
--- /dev/null
+++ b/source/l/glibc/patches/glibc.8a80ee5e2bab17a1f8e1e78fab5c33ac7efa8b29.patch
@@ -0,0 +1,40 @@
+From 8a80ee5e2bab17a1f8e1e78fab5c33ac7efa8b29 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Wed, 21 Aug 2019 09:25:22 -0700
+Subject: [PATCH] Fix bad pointer / leak in regex code
+
+This was found by Coverity (CID 1484201). [BZ#24844]
+* posix/regex_internal.c (create_cd_newstate): Fix use of bad
+pointer and/or memory leak when storage is exhausted.
+
+diff --git a/posix/regex_internal.c b/posix/regex_internal.c
+index 9004ce8..f53ded9 100644
+--- a/posix/regex_internal.c
++++ b/posix/regex_internal.c
+@@ -1716,15 +1716,19 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+ {
+ if (newstate->entrance_nodes == &newstate->nodes)
+ {
+- newstate->entrance_nodes = re_malloc (re_node_set, 1);
+- if (__glibc_unlikely (newstate->entrance_nodes == NULL))
++ re_node_set *entrance_nodes = re_malloc (re_node_set, 1);
++ if (__glibc_unlikely (entrance_nodes == NULL))
+ {
+ free_state (newstate);
+ return NULL;
+ }
++ newstate->entrance_nodes = entrance_nodes;
+ if (re_node_set_init_copy (newstate->entrance_nodes, nodes)
+ != REG_NOERROR)
+- return NULL;
++ {
++ free_state (newstate);
++ return NULL;
++ }
+ nctx_nodes = 0;
+ newstate->has_constraint = 1;
+ }
+--
+2.9.3
+
+
diff --git a/source/l/glibc/patches/glibc.b0f6679bcd738ea244a14acd879d974901e56c8e.patch b/source/l/glibc/patches/glibc.b0f6679bcd738ea244a14acd879d974901e56c8e.patch
new file mode 100644
index 00000000..24c22a39
--- /dev/null
+++ b/source/l/glibc/patches/glibc.b0f6679bcd738ea244a14acd879d974901e56c8e.patch
@@ -0,0 +1,28 @@
+From b0f6679bcd738ea244a14acd879d974901e56c8e Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Thu, 1 Aug 2019 14:06:24 +0200
+Subject: [PATCH] malloc: Remove unwanted leading whitespace in malloc_info [BZ
+ #24867]
+
+It was introduced in commit 6c8dbf00f536d78b1937b5af6f57be47fd376344
+("Reformat malloc to gnu style.").
+
+Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 00ce48c..343d89f 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -5491,7 +5491,7 @@ __malloc_info (int options, FILE *fp)
+
+ for (size_t i = 0; i < nsizes; ++i)
+ if (sizes[i].count != 0 && i != NFASTBINS)
+- fprintf (fp, " \
++ fprintf (fp, "\
+ <size from=\"%zu\" to=\"%zu\" total=\"%zu\" count=\"%zu\"/>\n",
+ sizes[i].from, sizes[i].to, sizes[i].total, sizes[i].count);
+
+--
+2.9.3
+
+
diff --git a/source/l/glibc/patches/glibc.b6d2c4475d5abc05dd009575b90556bdd3c78ad0.patch b/source/l/glibc/patches/glibc.b6d2c4475d5abc05dd009575b90556bdd3c78ad0.patch
new file mode 100644
index 00000000..b28c7943
--- /dev/null
+++ b/source/l/glibc/patches/glibc.b6d2c4475d5abc05dd009575b90556bdd3c78ad0.patch
@@ -0,0 +1,37 @@
+From b6d2c4475d5abc05dd009575b90556bdd3c78ad0 Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
+Date: Thu, 8 Aug 2019 22:02:27 +0200
+Subject: [PATCH] malloc: Fix missing accounting of top chunk in malloc_info
+ [BZ #24026]
+
+Fixes `<total type="rest" size="..."> incorrectly showing as 0 most
+of the time.
+
+The rest value being wrong is significant because to compute the
+actual amount of memory handed out via malloc, the user must subtract
+it from <system type="current" size="...">. That result being wrong
+makes investigating memory fragmentation issues like
+<https://bugzilla.redhat.com/show_bug.cgi?id=843478> close to
+impossible.
+
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 343d89f..0e65d63 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -5406,6 +5406,12 @@ __malloc_info (int options, FILE *fp)
+
+ __libc_lock_lock (ar_ptr->mutex);
+
++ /* Account for top chunk. The top-most available chunk is
++ treated specially and is never in any bin. See "initial_top"
++ comments. */
++ avail = chunksize (ar_ptr->top);
++ nblocks = 1; /* Top always exists. */
++
+ for (size_t i = 0; i < NFASTBINS; ++i)
+ {
+ mchunkptr p = fastbin (ar_ptr, i);
+--
+2.9.3
+
+
diff --git a/source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch b/source/l/glibc/patches/glibc.e1df30fbc2e2167a982c0e77a7ebee28f4dd0800.patch
new file mode 100644
index 00000000..d5dabb4a
--- /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
+
+