Hello community, here is the log from the commit of package glibc for openSUSE:Factory checked in at 2020-02-15 22:21:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/glibc (Old) and /work/SRC/openSUSE:Factory/.glibc.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glibc" Sat Feb 15 22:21:56 2020 rev:234 rq:774215 version:2.31 Changes: -------- --- /work/SRC/openSUSE:Factory/glibc/glibc.changes 2019-12-14 12:02:03.759415431 +0100 +++ /work/SRC/openSUSE:Factory/.glibc.new.26092/glibc.changes 2020-02-15 22:22:32.215216186 +0100 @@ -1,0 +2,40 @@ +Thu Feb 13 14:16:05 UTC 2020 - Andreas Schwab <[email protected]> + +- fix-locking-in-_IO_cleanup.patch: update to latest version + +------------------------------------------------------------------- +Mon Feb 3 08:13:02 UTC 2020 - Andreas Schwab <[email protected]> + +- Update to glibc 2.31 + * The GNU C Library now supports a feature test macro _ISOC2X_SOURCE to + enable features from the draft ISO C2X standard + * The <math.h> functions that round their results to a narrower type now + have corresponding type-generic macros in <tgmath.h> + * The function pthread_clockjoin_np has been added, enabling join with a + terminated thread with a specific clock + * New locale added: mnw_MM (Mon language spoken in Myanmar). + * The DNS stub resolver will optionally send the AD (authenticated data) bit + in queries if the trust-ad option is set via the options directive in + /etc/resolv.conf (or if RES_TRUSTAD is set in _res.options) + * The totalorder and totalordermag functions, and the corresponding + functions for other floating-point types, now take pointer arguments to + avoid signaling NaNs possibly being converted to quiet NaNs in argument + passing + * The obsolete function stime is no longer available to newly linked + binaries, and its declaration has been removed from <time.h> + * The gettimeofday function no longer reports information about a + system-wide time zone + * If a lazy binding failure happens during dlopen, during the execution of + an ELF constructor, the process is now terminated +- malloc-info-whitespace.patch, riscv-vfork.patch, + prefer-map-32bit-exec.patch, backtrace-powerpc.patch, + ldconfig-dynstr.patch: Removed. + +------------------------------------------------------------------- +Tue Jan 21 15:08:13 UTC 2020 - Andreas Schwab <[email protected]> + +- backtrace-powerpc.patch: Fix array overflow in backtrace on PowerPC + (bsc#1158996, BZ #25423) +- Drop support for pluggable gconv modules (bsc#1159851) + +------------------------------------------------------------------- Old: ---- glibc-2.30.tar.xz glibc-2.30.tar.xz.sig ldconfig-dynstr.patch malloc-info-whitespace.patch prefer-map-32bit-exec.patch riscv-vfork.patch New: ---- glibc-2.31.tar.xz glibc-2.31.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glibc.spec ++++++ --- /var/tmp/diff_new_pack.srXqrN/_old 2020-02-15 22:22:52.947227395 +0100 +++ /var/tmp/diff_new_pack.srXqrN/_new 2020-02-15 22:22:52.947227395 +0100 @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -148,7 +148,7 @@ %define enablekernel 4.15 %endif -Version: 2.30 +Version: 2.31 Release: 0 %if !%{build_snapshot} %define git_id 0a8262a1b2 @@ -257,12 +257,6 @@ ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM malloc: Remove unwanted leading whitespace in malloc_info (BZ #24867) -Patch1000: malloc-info-whitespace.patch -# PATCH-FIX-UPSTREAM Fix RISC-V vfork build with Linux 5.3 kernel headers -Patch1001: riscv-vfork.patch -# PATCH-FIX-UPSTREAM rtld: Check __libc_enable_secure before honoring LD_PREFER_MAP_32BIT_EXEC (CVE-2019-19126, BZ #25204) -Patch1002: prefer-map-32bit-exec.patch ### # Patches awaiting upstream approval @@ -271,10 +265,8 @@ Patch2000: fix-locking-in-_IO_cleanup.patch # PATCH-FIX-UPSTREAM Avoid concurrency problem in ldconfig (BZ #23973) Patch2001: ldconfig-concurrency.patch -# PATCH-FIX-UPSTREAM ldconfig: handle .dynstr located in separate segment (BZ #25087) -Patch2002: ldconfig-dynstr.patch # PATCH-FIX-UPSTREAM Fix buffer overrun in EUC-KR conversion module (BZ #24973) -Patch2003: euc-kr-overrun.patch +Patch2002: euc-kr-overrun.patch # Non-glibc patches # PATCH-FIX-OPENSUSE Remove debianisms from manpages @@ -472,14 +464,9 @@ %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 -%patch2003 -p1 %patch3000 @@ -1044,11 +1031,6 @@ %postun -p /sbin/ldconfig %post locale-base -for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do - [ -d "$l.d" ] || continue - echo "###X# The following is autogenerated from extra files in the .d directory:" >>"$l" - cat "$l.d"/* >>"$l" -done /usr/sbin/iconvconfig %post info @@ -1263,9 +1245,6 @@ %{_libdir}/libnldbl_nonshared.a %endif %{_libdir}/libmcheck.a -%ifarch x86_64 -%{_libdir}/libmvec_nonshared.a -%endif %files devel-static %defattr(-,root,root) ++++++ fix-locking-in-_IO_cleanup.patch ++++++ --- /var/tmp/diff_new_pack.srXqrN/_old 2020-02-15 22:22:52.999227423 +0100 +++ /var/tmp/diff_new_pack.srXqrN/_new 2020-02-15 22:22:52.999227423 +0100 @@ -1,70 +1,34 @@ -Always do locking when accessing streams (bug 15142) +Always do locking when accessing streams (bug 15142, bug 14697) -During exit, skip files that are currently locked to avoid deadlock. +Now that abort no longer calls fflush there is no reason to avoid locking +the stdio streams anywhere. This fixes a conformance issue and potential +heap corruption during exit. The test nptl/tst-stdio1 is removed as that +was expecting the problematic behaviour. - [BZ #15142] - * libio/libio.h (_IO_ftrylockfile) [_IO_MTSAVE_IO]: Define. - * libio/genops.c (_IO_flush_all_lockp): Make static. Rename - argument to skip_locked, callers changed. Skip files that are - locked if skip_locked. - (_IO_unbuffer_all): Lock files before access, but skip locked - files. - * libio/libioP.h (_IO_flush_all_lockp): Don't declare. - -Index: glibc-2.27/libio/libio.h -=================================================================== ---- glibc-2.27.orig/libio/libio.h -+++ glibc-2.27/libio/libio.h -@@ -33,11 +33,15 @@ libc_hidden_proto (_IO_vfscanf) - if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_lock_lock (*(_fp)->_lock) - # define _IO_funlockfile(_fp) \ - if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_lock_unlock (*(_fp)->_lock) -+# define _IO_ftrylockfile(_fp) \ -+ (((_fp)->_flags & _IO_USER_LOCK) == 0 ? _IO_lock_trylock (*(_fp)->_lock) : 0) - # else - # define _IO_flockfile(_fp) \ - if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_flockfile (_fp) - # define _IO_funlockfile(_fp) \ - if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_funlockfile (_fp) -+# define _IO_ftrylockfile(_fp) \ -+ (((_fp)->_flags & _IO_USER_LOCK) == 0 ? _IO_ftrylockfile (_fp) : 0) - # endif - #endif /* _IO_MTSAFE_IO */ - -Index: glibc-2.27/libio/genops.c +Index: glibc-2.31/libio/genops.c =================================================================== ---- glibc-2.27.orig/libio/genops.c -+++ glibc-2.27/libio/genops.c -@@ -744,8 +744,8 @@ _IO_adjust_column (unsigned start, const - } +--- glibc-2.31.orig/libio/genops.c ++++ glibc-2.31/libio/genops.c +@@ -682,7 +682,7 @@ _IO_adjust_column (unsigned start, const libc_hidden_def (_IO_adjust_column) --int + int -_IO_flush_all_lockp (int do_lock) -+static int -+_IO_flush_all_lockp (bool skip_locked) ++_IO_flush_all (void) { int result = 0; FILE *fp; -@@ -758,7 +758,16 @@ _IO_flush_all_lockp (int do_lock) +@@ -695,8 +695,7 @@ _IO_flush_all_lockp (int do_lock) for (fp = (FILE *) _IO_list_all; fp != NULL; fp = fp->_chain) { run_fp = fp; - if (do_lock) -+ if (skip_locked) -+ { -+ /* Skip files that are currently locked. */ -+ if (_IO_ftrylockfile (fp)) -+ { -+ run_fp = NULL; -+ continue; -+ } -+ } -+ else - _IO_flockfile (fp); +- _IO_flockfile (fp); ++ _IO_flockfile (fp); if (((fp->_mode <= 0 && fp->_IO_write_ptr > fp->_IO_write_base) -@@ -769,8 +778,7 @@ _IO_flush_all_lockp (int do_lock) + || (_IO_vtable_offset (fp) == 0 +@@ -706,8 +705,7 @@ _IO_flush_all_lockp (int do_lock) && _IO_OVERFLOW (fp, EOF) == EOF) result = EOF; @@ -74,31 +38,32 @@ run_fp = NULL; } -@@ -787,7 +795,7 @@ int - _IO_flush_all (void) - { - /* We want locking. */ -- return _IO_flush_all_lockp (1); -+ return _IO_flush_all_lockp (false); +@@ -718,14 +716,6 @@ _IO_flush_all_lockp (int do_lock) + + return result; } +- +- +-int +-_IO_flush_all (void) +-{ +- /* We want locking. */ +- return _IO_flush_all_lockp (1); +-} libc_hidden_def (_IO_flush_all) -@@ -852,6 +860,14 @@ _IO_unbuffer_all (void) - - for (fp = (FILE *) _IO_list_all; fp; fp = fp->_chain) + void +@@ -791,6 +781,9 @@ _IO_unbuffer_all (void) { -+ run_fp = fp; -+ /* Skip files that are currently locked. */ -+ if (_IO_ftrylockfile (fp)) -+ { -+ run_fp = NULL; -+ continue; -+ } -+ int legacy = 0; ++ run_fp = fp; ++ _IO_flockfile (fp); ++ #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) -@@ -863,18 +879,6 @@ _IO_unbuffer_all (void) + if (__glibc_unlikely (_IO_vtable_offset (fp) != 0)) + legacy = 1; +@@ -800,18 +793,6 @@ _IO_unbuffer_all (void) /* Iff stream is un-orientated, it wasn't used. */ && (legacy || fp->_mode != 0)) { @@ -117,7 +82,7 @@ if (! legacy && ! dealloc_buffers && !(fp->_flags & _IO_USER_BUF)) { fp->_flags |= _IO_USER_BUF; -@@ -881,17 +885,15 @@ _IO_unbuffer_all (void) +@@ -825,17 +806,15 @@ _IO_unbuffer_all (void) if (! legacy && fp->_mode > 0) _IO_wsetb (fp, NULL, NULL, 0); @@ -138,24 +103,22 @@ } #ifdef _IO_MTSAFE_IO -@@ -916,9 +918,9 @@ libc_freeres_fn (buffer_free) +@@ -861,9 +840,7 @@ libc_freeres_fn (buffer_free) int _IO_cleanup (void) { - /* We do *not* want locking. Some threads might use streams but - that is their problem, we flush them underneath them. */ - int result = _IO_flush_all_lockp (0); -+ /* We want to skip locked streams. Some threads might use streams but -+ that is their problem, we don't flush those. */ -+ int result = _IO_flush_all_lockp (true); ++ int result = _IO_flush_all (); /* We currently don't have a reliable mechanism for making sure that C++ static destructors are executed in the correct order. -Index: glibc-2.27/libio/libioP.h +Index: glibc-2.31/libio/libioP.h =================================================================== ---- glibc-2.27.orig/libio/libioP.h -+++ glibc-2.27/libio/libioP.h -@@ -486,7 +486,6 @@ extern int _IO_new_do_write (FILE *, con +--- glibc-2.31.orig/libio/libioP.h ++++ glibc-2.31/libio/libioP.h +@@ -487,7 +487,6 @@ extern int _IO_new_do_write (FILE *, con extern int _IO_old_do_write (FILE *, const char *, size_t); extern int _IO_wdo_write (FILE *, const wchar_t *, size_t); libc_hidden_proto (_IO_wdo_write) @@ -163,3 +126,77 @@ extern int _IO_flush_all (void); libc_hidden_proto (_IO_flush_all) extern int _IO_cleanup (void); +Index: glibc-2.31/nptl/Makefile +=================================================================== +--- glibc-2.31.orig/nptl/Makefile ++++ glibc-2.31/nptl/Makefile +@@ -295,7 +295,7 @@ tests = tst-attr1 tst-attr2 tst-attr3 ts + tst-signal6 \ + tst-exec1 tst-exec2 tst-exec3 tst-exec4 tst-exec5 \ + tst-exit1 tst-exit2 tst-exit3 \ +- tst-stdio1 tst-stdio2 \ ++ tst-stdio2 \ + tst-stack1 tst-stack2 tst-stack3 tst-stack4 tst-pthread-getattr \ + tst-pthread-attr-affinity tst-pthread-mutexattr \ + tst-unload \ +Index: glibc-2.31/nptl/tst-stdio1.c +=================================================================== +--- glibc-2.31.orig/nptl/tst-stdio1.c ++++ /dev/null +@@ -1,56 +0,0 @@ +-/* Copyright (C) 2002-2020 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper <[email protected]>, 2002. +- +- 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 +- <https://www.gnu.org/licenses/>. */ +- +-#include <pthread.h> +-#include <signal.h> +-#include <stdio.h> +-#include <unistd.h> +- +-static int do_test (void); +- +-#define TEST_FUNCTION do_test () +-#include "../test-skeleton.c" +- +-static void *tf (void *a) +-{ +- flockfile (stdout); +- /* This call should never return. */ +- return a; +-} +- +- +-int +-do_test (void) +-{ +- pthread_t th; +- +- flockfile (stdout); +- +- if (pthread_create (&th, NULL, tf, NULL) != 0) +- { +- write_message ("create failed\n"); +- _exit (1); +- } +- +- delayed_exit (1); +- xpthread_join (th); +- +- puts ("join returned"); +- +- return 1; +-} ++++++ glibc-2.30.tar.xz -> glibc-2.31.tar.xz ++++++ /work/SRC/openSUSE:Factory/glibc/glibc-2.30.tar.xz /work/SRC/openSUSE:Factory/.glibc.new.26092/glibc-2.31.tar.xz differ: char 25, line 1 ++++++ glibc-version.diff ++++++ --- /var/tmp/diff_new_pack.srXqrN/_old 2020-02-15 22:22:53.039227445 +0100 +++ /var/tmp/diff_new_pack.srXqrN/_new 2020-02-15 22:22:53.039227445 +0100 @@ -8,7 +8,7 @@ static const char banner[] = -"GNU C Library "PKGVERSION RELEASE" release version "VERSION".\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID").\n\ - Copyright (C) 2019 Free Software Foundation, Inc.\n\ + Copyright (C) 2020 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ ++++++ nsswitch.conf ++++++ --- /var/tmp/diff_new_pack.srXqrN/_old 2020-02-15 22:22:53.103227480 +0100 +++ /var/tmp/diff_new_pack.srXqrN/_new 2020-02-15 22:22:53.103227480 +0100 @@ -4,39 +4,71 @@ # An example Name Service Switch config file. This file should be # sorted with the most-used services at the beginning. # -# The entry '[NOTFOUND=return]' means that the search for an -# entry should stop if the search in the previous entry turned -# up nothing. Note that if the search failed due to some other reason -# (like no NIS server responding) then the search continues with the -# next entry. -# -# Legal entries are: -# -# compat Use compatibility setup -# nisplus Use NIS+ (NIS version 3) -# nis Use NIS (NIS version 2), also called YP -# dns Use DNS (Domain Name Service) -# files Use the local files -# [NOTFOUND=return] Stop searching if not found so far +# Valid databases are: aliases, ethers, group, gshadow, hosts, +# initgroups, netgroup, networks, passwd, protocols, publickey, +# rpc, services, and shadow. # -# For more information, please read the nsswitch.conf.5 manual page. +# Valid service provider entries include (in alphabetical order): # +# compat Use /etc files plus *_compat pseudo-db +# db Use the pre-processed /var/db files +# dns Use DNS (Domain Name Service) +# files Use the local files in /etc +# hesiod Use Hesiod (DNS) for user lookups +# nis Use NIS (NIS version 2), also called YP +# nisplus Use NIS+ (NIS version 3) +# +# See `info libc 'NSS Basics'` for more information. +# +# Commonly used alternative service providers (may need installation): +# +# ldap Use LDAP directory server +# myhostname Use systemd host names +# mymachines Use systemd machine names +# mdns*, mdns*_minimal Use Avahi mDNS/DNS-SD +# resolve Use systemd resolved resolver +# sss Use System Security Services Daemon (sssd) +# systemd Use systemd for dynamic user option +# winbind Use Samba winbind support +# wins Use Samba wins support +# wrapper Use wrapper module for testing +# +# Notes: +# +# 'sssd' performs its own 'files'-based caching, so it should generally +# come before 'files'. +# +# WARNING: Running nscd with a secondary caching service like sssd may +# lead to unexpected behaviour, especially with how long +# entries are cached. +# +# Installation instructions: +# +# To use 'db', install the appropriate package(s) (provide 'makedb' and +# libnss_db.so.*), and place the 'db' in front of 'files' for entries +# you want to be looked up first in the databases, like this: +# +# passwd: db files +# shadow: db files +# group: db files -passwd: compat -group: compat -shadow: compat +passwd: compat +group: compat +shadow: compat hosts: files dns networks: files dns -services: files usrfiles -protocols: files usrfiles -rpc: files usrfiles +aliases: files usrfiles ethers: files usrfiles -netmasks: files +gshadow: files usrfiles +initgroups: files netgroup: files nis +protocols: files usrfiles publickey: files +rpc: files usrfiles +services: files usrfiles -bootparams: files automount: files nis -aliases: files usrfiles +bootparams: files +netmasks: files
