diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 8fad9b6..2ff2ee7 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de + +- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for + stncat on i586 (BZ #20260) +- Update glibc.keyring +- Unset MALLOC_CHECK_ during testsuite run + +------------------------------------------------------------------- +Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de + +- nsswitch.conf: Add fallback to files for passwd and group to prepare for + libnsl removal. + +------------------------------------------------------------------- +Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de + +- nis-initgroups-status.patch: Return proper status from + _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) +- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to + check for timeout (bsc#985170, BZ #20263) + ------------------------------------------------------------------- Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index b491508..fd0c742 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -120,7 +120,7 @@ Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig %endif -Source2: glibc.keyring +Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -310,6 +310,12 @@ Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch Patch1056: clntudp-call-alloca.patch # PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) Patch1057: nscd-gc-crash.patch +# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) +Patch1058: nis-initgroups-status.patch +# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) +Patch1059: robust-mutex-deadlock.patch +# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) +Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -590,6 +596,9 @@ rm nscd/s-stamp %patch1055 -p1 %patch1056 -p1 %patch1057 -p1 +%patch1058 -p1 +%patch1059 -p1 +%patch1060 -p1 %patch2000 -p1 %patch2001 -p1 @@ -857,6 +866,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 +# The testsuite does its own malloc checking +unset MALLOC_CHECK_ make -C cc-base -k check || { cd cc-base o=$- diff --git a/glibc-utils.changes b/glibc-utils.changes index 8fad9b6..2ff2ee7 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de + +- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for + stncat on i586 (BZ #20260) +- Update glibc.keyring +- Unset MALLOC_CHECK_ during testsuite run + +------------------------------------------------------------------- +Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de + +- nsswitch.conf: Add fallback to files for passwd and group to prepare for + libnsl removal. + +------------------------------------------------------------------- +Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de + +- nis-initgroups-status.patch: Return proper status from + _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) +- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to + check for timeout (bsc#985170, BZ #20263) + ------------------------------------------------------------------- Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index bdfd810..1412c89 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -119,7 +119,7 @@ Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig %endif -Source2: glibc.keyring +Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -309,6 +309,12 @@ Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch Patch1056: clntudp-call-alloca.patch # PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) Patch1057: nscd-gc-crash.patch +# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) +Patch1058: nis-initgroups-status.patch +# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) +Patch1059: robust-mutex-deadlock.patch +# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) +Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -590,6 +596,9 @@ rm nscd/s-stamp %patch1055 -p1 %patch1056 -p1 %patch1057 -p1 +%patch1058 -p1 +%patch1059 -p1 +%patch1060 -p1 %patch2000 -p1 %patch2001 -p1 @@ -857,6 +866,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 +# The testsuite does its own malloc checking +unset MALLOC_CHECK_ make -C cc-base -k check || { cd cc-base o=$- diff --git a/glibc.changes b/glibc.changes index 8fad9b6..2ff2ee7 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Jun 29 12:50:21 UTC 2016 - schwab@suse.de + +- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for + stncat on i586 (BZ #20260) +- Update glibc.keyring +- Unset MALLOC_CHECK_ during testsuite run + +------------------------------------------------------------------- +Thu Jun 23 07:41:06 UTC 2016 - schwab@suse.de + +- nsswitch.conf: Add fallback to files for passwd and group to prepare for + libnsl removal. + +------------------------------------------------------------------- +Wed Jun 22 09:08:02 UTC 2016 - schwab@suse.de + +- nis-initgroups-status.patch: Return proper status from + _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) +- robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to + check for timeout (bsc#985170, BZ #20263) + ------------------------------------------------------------------- Thu Jun 9 09:17:10 UTC 2016 - schwab@suse.de diff --git a/glibc.keyring b/glibc.keyring index 4de855c..e070aa8 100644 Binary files a/glibc.keyring and b/glibc.keyring differ diff --git a/glibc.spec b/glibc.spec index f1e5cf0..b383069 100644 --- a/glibc.spec +++ b/glibc.spec @@ -120,7 +120,7 @@ Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz %if !%{build_snapshot} Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig %endif -Source2: glibc.keyring +Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring Source3: noversion.tar.bz2 Source4: manpages.tar.bz2 Source5: nsswitch.conf @@ -310,6 +310,12 @@ Patch1055: 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch Patch1056: clntudp-call-alloca.patch # PATCH-FIX-UPSTREAM Fix nscd assertion failure in gc (BZ #19755) Patch1057: nscd-gc-crash.patch +# PATCH-FIX-UPSTREAM Return proper status from _nss_nis_initgroups_dyn (BZ #20262) +Patch1058: nis-initgroups-status.patch +# PATCH-FIX-UPSTREAM Fix generic __lll_robust_timedlock_wait to check for timeout (BZ #20263) +Patch1059: robust-mutex-deadlock.patch +# PATCH-FIX-UPSTREAM Avoid array-bounds warning for strncat on i586 (BZ #20260) +Patch1060: strncat-avoid-array-bounds-warning.patch ### # Patches awaiting upstream approval @@ -590,6 +596,9 @@ rm nscd/s-stamp %patch1055 -p1 %patch1056 -p1 %patch1057 -p1 +%patch1058 -p1 +%patch1059 -p1 +%patch1060 -p1 %patch2000 -p1 %patch2001 -p1 @@ -857,6 +866,8 @@ popd export SUSE_ASNEEDED=0 # Increase timeout export TIMEOUTFACTOR=16 +# The testsuite does its own malloc checking +unset MALLOC_CHECK_ make -C cc-base -k check || { cd cc-base o=$- diff --git a/nis-initgroups-status.patch b/nis-initgroups-status.patch new file mode 100644 index 0000000..786c4e6 --- /dev/null +++ b/nis-initgroups-status.patch @@ -0,0 +1,53 @@ + [BZ #20262] + * nis/nss_nis/nis-initgroups.c (_nss_nis_initgroups_dyn): Return + NSS_STATUS_SUCCESS when done. Return NSS_STATUS_TRYAGAIN when out + of memory. + +Index: glibc-2.23/nis/nss_nis/nis-initgroups.c +=================================================================== +--- glibc-2.23.orig/nis/nss_nis/nis-initgroups.c ++++ glibc-2.23/nis/nss_nis/nis-initgroups.c +@@ -266,7 +266,7 @@ _nss_nis_initgroups_dyn (const char *use + + tmpbuf = __alloca (buflen); + +- do ++ while (1) + { + while ((status = + internal_getgrent_r (&grpbuf, tmpbuf, buflen, errnop, +@@ -275,8 +275,11 @@ _nss_nis_initgroups_dyn (const char *use + tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); + + if (status != NSS_STATUS_SUCCESS) +- goto done; +- ++ { ++ if (status == NSS_STATUS_NOTFOUND) ++ status = NSS_STATUS_SUCCESS; ++ goto done; ++ } + + g = &grpbuf; + if (g->gr_gid != group) +@@ -304,7 +307,11 @@ _nss_nis_initgroups_dyn (const char *use + + newgroups = realloc (groups, newsize * sizeof (*groups)); + if (newgroups == NULL) +- goto done; ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ *errnop = errno; ++ goto done; ++ } + *groupsp = groups = newgroups; + *size = newsize; + } +@@ -316,7 +323,6 @@ _nss_nis_initgroups_dyn (const char *use + } + } + } +- while (status == NSS_STATUS_SUCCESS); + + done: + while (intern.start != NULL) diff --git a/nsswitch.conf b/nsswitch.conf index 9d628f0..fbd63fd 100644 --- a/nsswitch.conf +++ b/nsswitch.conf @@ -26,8 +26,8 @@ # shadow: files nis # group: files nis -passwd: compat -group: compat +passwd: compat [NOTFOUND=return] files +group: compat [NOTFOUND=return] files hosts: files dns networks: files dns diff --git a/robust-mutex-deadlock.patch b/robust-mutex-deadlock.patch new file mode 100644 index 0000000..a7edfc2 --- /dev/null +++ b/robust-mutex-deadlock.patch @@ -0,0 +1,152 @@ + [BZ #20263] + * nptl/lowlevelrobustlock.c (__lll_robust_timedlock_wait) + [__ASSUME_FUTEX_CLOCK_REALTIME]: Check for timeout from + lll_futex_timed_wait_bitset. + * nptl/tst-robust10.c: New test. + * nptl/Makefile (tests): Add tst-robust10. + +Index: glibc-2.23/nptl/Makefile +=================================================================== +--- glibc-2.23.orig/nptl/Makefile ++++ glibc-2.23/nptl/Makefile +@@ -288,7 +288,7 @@ tests = tst-typesizes \ + tst-initializers1 $(addprefix tst-initializers1-,\ + c89 gnu89 c99 gnu99 c11 gnu11) \ + tst-bad-schedattr \ +- tst-thread_local1 tst-mutex-errorcheck ++ tst-thread_local1 tst-mutex-errorcheck tst-robust10 + xtests = tst-setuid1 tst-setuid1-static tst-setuid2 \ + tst-mutexpp1 tst-mutexpp6 tst-mutexpp10 + test-srcs = tst-oddstacklimit +Index: glibc-2.23/nptl/lowlevelrobustlock.c +=================================================================== +--- glibc-2.23.orig/nptl/lowlevelrobustlock.c ++++ glibc-2.23/nptl/lowlevelrobustlock.c +@@ -118,8 +118,10 @@ __lll_robust_timedlock_wait (int *futex, + || !defined lll_futex_timed_wait_bitset) + lll_futex_timed_wait (futex, newval, &rt, private); + #else +- lll_futex_timed_wait_bitset (futex, newval, abstime, +- FUTEX_CLOCK_REALTIME, private); ++ int err = lll_futex_timed_wait_bitset (futex, newval, abstime, ++ FUTEX_CLOCK_REALTIME, private); ++ if (err == -ETIMEDOUT) ++ return -err; + #endif + + try: +Index: glibc-2.23/nptl/tst-robust10.c +=================================================================== +--- /dev/null ++++ glibc-2.23/nptl/tst-robust10.c +@@ -0,0 +1,110 @@ ++/* Test that pthread_mutex_timedlock properly times out. ++ Copyright (C) 2016 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++pthread_mutex_t mutex; ++ ++static void * ++thr (void *arg) ++{ ++ struct timespec abstime; ++ clock_gettime (CLOCK_REALTIME, &abstime); ++ abstime.tv_sec += 1; ++ int ret = pthread_mutex_timedlock (&mutex, &abstime); ++ if (ret == 0) ++ { ++ puts ("mutex_timedlock didn't fail"); ++ exit (1); ++ } ++ if (ret != ETIMEDOUT) ++ { ++ printf ("mutex_timedlock failed: %s\n", strerror (ret)); ++ exit (1); ++ } ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ pthread_t pt; ++ pthread_mutexattr_t ma; ++ ++ if (pthread_mutexattr_init (&ma) != 0) ++ { ++ puts ("mutexattr_init failed"); ++ return 0; ++ } ++ if (pthread_mutexattr_setrobust_np (&ma, PTHREAD_MUTEX_ROBUST_NP) != 0) ++ { ++ puts ("mutexattr_setrobust failed"); ++ return 1; ++ } ++ if (pthread_mutex_init (&mutex, &ma)) ++ { ++ puts ("mutex_init failed"); ++ return 1; ++ } ++ ++ if (pthread_mutexattr_destroy (&ma)) ++ { ++ puts ("mutexattr_destroy failed"); ++ return 1; ++ } ++ ++ if (pthread_mutex_lock (&mutex)) ++ { ++ puts ("mutex_lock failed"); ++ return 1; ++ } ++ ++ if (pthread_create (&pt, NULL, thr, NULL)) ++ { ++ puts ("pthread_create failed"); ++ return 1; ++ } ++ ++ if (pthread_join (pt, NULL)) ++ { ++ puts ("pthread_join failed"); ++ return 1; ++ } ++ ++ if (pthread_mutex_unlock (&mutex)) ++ { ++ puts ("mutex_unlock failed"); ++ return 1; ++ } ++ ++ if (pthread_mutex_destroy (&mutex)) ++ { ++ puts ("mutex_destroy failed"); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/strncat-avoid-array-bounds-warning.patch b/strncat-avoid-array-bounds-warning.patch new file mode 100644 index 0000000..f196c34 --- /dev/null +++ b/strncat-avoid-array-bounds-warning.patch @@ -0,0 +1,31 @@ +Subject: [PATCH] Avoid array-bounds warning for strncat on i586 + + [BZ #20260] + * sysdeps/x86/bits/string.h (__strncat_g) [!__i686__]: Compute the + address before the beginning of the string as an integer to avoid + array-bounds warning. + +diff --git a/sysdeps/x86/bits/string.h b/sysdeps/x86/bits/string.h +index 8dfce05..805d33f 100644 +--- a/sysdeps/x86/bits/string.h ++++ b/sysdeps/x86/bits/string.h +@@ -1089,7 +1089,6 @@ __strncat_g (char *__dest, const char __src[], size_t __n) + : "g" (__n), "0" (0), "1" (__tmp), "2" (__src), "3" (0xffffffff) + : "memory", "cc"); + # else +- --__tmp; + __asm__ __volatile__ + ("1:\n\t" + "cmpb $0,1(%1)\n\t" +@@ -1108,7 +1107,7 @@ __strncat_g (char *__dest, const char __src[], size_t __n) + "3:\n\t" + "movb $0,(%1)" + : "=&q" (__dummy), "=&r" (__tmp), "=&r" (__src), "=&r" (__n) +- : "1" (__tmp), "2" (__src), "3" (__n) ++ : "1" ((unsigned long) __tmp - 1), "2" (__src), "3" (__n) + : "memory", "cc"); + #endif + return __dest; +-- +2.9.0 +