Hello community, here is the log from the commit of package glibc for openSUSE:Factory checked in at 2016-07-16 22:10:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/glibc (Old) and /work/SRC/openSUSE:Factory/.glibc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glibc" Changes: -------- --- /work/SRC/openSUSE:Factory/glibc/glibc-testsuite.changes 2016-07-03 12:17:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.glibc.new/glibc-testsuite.changes 2016-07-16 22:10:14.000000000 +0200 @@ -1,0 +2,22 @@ +Wed Jun 29 12:50:21 UTC 2016 - [email protected] + +- 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 - [email protected] + +- nsswitch.conf: Add fallback to files for passwd and group to prepare for + libnsl removal. + +------------------------------------------------------------------- +Wed Jun 22 09:08:02 UTC 2016 - [email protected] + +- 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) + +------------------------------------------------------------------- glibc-utils.changes: same change glibc.changes: same change New: ---- nis-initgroups-status.patch robust-mutex-deadlock.patch strncat-avoid-array-bounds-warning.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glibc-testsuite.spec ++++++ --- /var/tmp/diff_new_pack.uHBZpo/_old 2016-07-16 22:10:18.000000000 +0200 +++ /var/tmp/diff_new_pack.uHBZpo/_new 2016-07-16 22:10:18.000000000 +0200 @@ -120,7 +120,7 @@ %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 @@ 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 @@ %patch1055 -p1 %patch1056 -p1 %patch1057 -p1 +%patch1058 -p1 +%patch1059 -p1 +%patch1060 -p1 %patch2000 -p1 %patch2001 -p1 @@ -857,6 +866,8 @@ 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=$- glibc-utils.spec: same change ++++++ glibc.spec ++++++ --- /var/tmp/diff_new_pack.uHBZpo/_old 2016-07-16 22:10:18.000000000 +0200 +++ /var/tmp/diff_new_pack.uHBZpo/_new 2016-07-16 22:10:18.000000000 +0200 @@ -120,7 +120,7 @@ %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 @@ 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 @@ %patch1055 -p1 %patch1056 -p1 %patch1057 -p1 +%patch1058 -p1 +%patch1059 -p1 +%patch1060 -p1 %patch2000 -p1 %patch2001 -p1 @@ -857,6 +866,8 @@ 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=$- ++++++ glibc.keyring ++++++ Files /var/tmp/diff_new_pack.uHBZpo/_old and /var/tmp/diff_new_pack.uHBZpo/_new differ ++++++ nis-initgroups-status.patch ++++++ [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) ++++++ nsswitch.conf ++++++ --- /var/tmp/diff_new_pack.uHBZpo/_old 2016-07-16 22:10:18.000000000 +0200 +++ /var/tmp/diff_new_pack.uHBZpo/_new 2016-07-16 22:10:18.000000000 +0200 @@ -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 ++++++ robust-mutex-deadlock.patch ++++++ [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 + <http://www.gnu.org/licenses/>. */ + +#include <pthread.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> + +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" ++++++ strncat-avoid-array-bounds-warning.patch ++++++ 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
