Hello community, here is the log from the commit of package glibc for openSUSE:Factory checked in at 2014-05-22 20:38:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2014-04-22 07:47:57.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.glibc.new/glibc-testsuite.changes 2014-05-22 20:38:35.000000000 +0200 @@ -1,0 +2,17 @@ +Thu May 15 15:45:03 UTC 2014 - sch...@suse.de + +- add non-elision-enabled libpthread + +------------------------------------------------------------------- +Mon May 12 13:22:40 UTC 2014 - sch...@suse.de + +- nss-nis-stack-use.patch: fix unbound stack use in NIS NSS module (BZ + #16932) + +------------------------------------------------------------------- +Wed May 7 10:13:24 UTC 2014 - sch...@suse.de + +- getaddrinfo-uninit-result.patch: fix parsing of getai result for + IPv6-only request (bnc#876521) + +------------------------------------------------------------------- glibc-utils.changes: same change glibc.changes: same change New: ---- nss-nis-stack-use.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glibc-testsuite.spec ++++++ --- /var/tmp/diff_new_pack.vMJvOb/_old 2014-05-22 20:38:38.000000000 +0200 +++ /var/tmp/diff_new_pack.vMJvOb/_new 2014-05-22 20:38:38.000000000 +0200 @@ -254,6 +254,8 @@ Patch1010: ibm-long-double-frexpl.patch # PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) Patch1011: aarch64-setcontext.patch +# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) +Patch1012: nss-nis-stack-use.patch ### # Patches awaiting upstream approval @@ -480,6 +482,7 @@ %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 +%patch1012 -p1 %patch2000 -p1 %patch2001 -p1 @@ -623,17 +626,21 @@ profile="--enable-profile" fi %endif + elision=--enable-lock-elision + if [ "$dirname" = "noelision" ]; then + elision=--disable-lock-elision + fi + ../configure \ CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ - CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ - $profile \ + $profile $elision \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif - --enable-lock-elision \ --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -695,6 +702,10 @@ %endif %endif # optimize_power +%ifarch i686 x86_64 +configure_and_build_glibc noelision "$BuildFlags" "$add_ons" +%endif + # # Build html documentation # @@ -796,10 +807,9 @@ else cp -a ${lib}.so $destdir/$libbaseso fi - # Emulate ldconfig - ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) done cd .. +cc-base/elf/ldconfig -vn $destdir } # Install power-optimized glibc @@ -822,17 +832,23 @@ if test -d %{buildroot}/%{_lib}/power6; then mkdir -p %{buildroot}/%{_lib}/power6x for i in %{buildroot}/%{_lib}/power6/*.so; do - b=`basename $i` + b=$(basename $i) ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - libbase=${b%.so} - libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) - # Emulate ldconfig - ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) done + cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x fi %endif %endif # optimize_power +%ifarch i686 x86_64 +cd cc-noelision +destdir=$RPM_BUILD_ROOT/%{_lib}/noelision +mkdir -p $destdir +install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +cd .. +cc-base/elf/ldconfig -vn $destdir +%endif + # Install locales %if %{build_locales} # XXX Do not install locales in parallel! @@ -1181,6 +1197,9 @@ %{optimized_libs ppc-cell-be} %endif %endif # optimize_power +%ifarch i686 x86_64 +/%{_lib}/noelision +%endif %dir %attr(0700,root,root) /var/cache/ldconfig /sbin/ldconfig %{_bindir}/gencat @@ -1201,10 +1220,7 @@ %ifarch i586 %files obsolete %defattr (755,root,root,755) -%dir /%{_lib}/obsolete/ - %dir /%{_lib}/obsolete/noversion - /%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so - /%{_lib}/obsolete/noversion/libNoVersion.so.1 +/%{_lib}/obsolete %endif %files locale -f libc.lang glibc-utils.spec: same change ++++++ glibc.spec ++++++ --- /var/tmp/diff_new_pack.vMJvOb/_old 2014-05-22 20:38:38.000000000 +0200 +++ /var/tmp/diff_new_pack.vMJvOb/_new 2014-05-22 20:38:38.000000000 +0200 @@ -254,6 +254,8 @@ Patch1010: ibm-long-double-frexpl.patch # PATCH-FIX-UPSTREAM Fix aarch64 setcontext clobbering alternate signal stack (BZ #16629) Patch1011: aarch64-setcontext.patch +# PATCH-FIX-UPSTREAM Fix unbound stack use in NIS NSS module (BZ #16932) +Patch1012: nss-nis-stack-use.patch ### # Patches awaiting upstream approval @@ -480,6 +482,7 @@ %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 +%patch1012 -p1 %patch2000 -p1 %patch2001 -p1 @@ -623,17 +626,21 @@ profile="--enable-profile" fi %endif + elision=--enable-lock-elision + if [ "$dirname" = "noelision" ]; then + elision=--disable-lock-elision + fi + ../configure \ CFLAGS="$conf_cflags" BUILD_CFLAGS="$conf_cflags" \ - CC="$BuildCC" CXX="$BuildCCplus" ../configure \ + CC="$BuildCC" CXX="$BuildCCplus" \ --prefix=%{_prefix} \ --libexecdir=%{_libexecdir} --infodir=%{_infodir} \ --enable-add-ons=nptl$addons \ - $profile \ + $profile $elision \ "$@" \ %if %{enable_stackguard_randomization} --enable-stackguard-randomization \ %endif - --enable-lock-elision \ --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -695,6 +702,10 @@ %endif %endif # optimize_power +%ifarch i686 x86_64 +configure_and_build_glibc noelision "$BuildFlags" "$add_ons" +%endif + # # Build html documentation # @@ -796,10 +807,9 @@ else cp -a ${lib}.so $destdir/$libbaseso fi - # Emulate ldconfig - ln -sf $libbaseso $destdir/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) done cd .. +cc-base/elf/ldconfig -vn $destdir } # Install power-optimized glibc @@ -822,17 +832,23 @@ if test -d %{buildroot}/%{_lib}/power6; then mkdir -p %{buildroot}/%{_lib}/power6x for i in %{buildroot}/%{_lib}/power6/*.so; do - b=`basename $i` + b=$(basename $i) ln -vs ../power6/$b %{buildroot}/%{_lib}/power6x/$b - libbase=${b%.so} - libbaseso=$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}-*.so) - # Emulate ldconfig - ln -sf $libbaseso %{buildroot}/%{_lib}/power6x/$(basename $RPM_BUILD_ROOT/%{_lib}/${libbase}.so.*) done + cc-base/elf/ldconfig -vn %{buildroot}/%{_lib}/power6x fi %endif %endif # optimize_power +%ifarch i686 x86_64 +cd cc-noelision +destdir=$RPM_BUILD_ROOT/%{_lib}/noelision +mkdir -p $destdir +install -m 755 nptl/libpthread.so $destdir/libpthread-%{glibc_major_version}.so +cd .. +cc-base/elf/ldconfig -vn $destdir +%endif + # Install locales %if %{build_locales} # XXX Do not install locales in parallel! @@ -1181,6 +1197,9 @@ %{optimized_libs ppc-cell-be} %endif %endif # optimize_power +%ifarch i686 x86_64 +/%{_lib}/noelision +%endif %dir %attr(0700,root,root) /var/cache/ldconfig /sbin/ldconfig %{_bindir}/gencat @@ -1201,10 +1220,7 @@ %ifarch i586 %files obsolete %defattr (755,root,root,755) -%dir /%{_lib}/obsolete/ - %dir /%{_lib}/obsolete/noversion - /%{_lib}/obsolete/noversion/libNoVersion-%{glibc_major_version}.so - /%{_lib}/obsolete/noversion/libNoVersion.so.1 +/%{_lib}/obsolete %endif %files locale -f libc.lang ++++++ getaddrinfo-uninit-result.patch ++++++ --- /var/tmp/diff_new_pack.vMJvOb/_old 2014-05-22 20:38:38.000000000 +0200 +++ /var/tmp/diff_new_pack.vMJvOb/_new 2014-05-22 20:38:38.000000000 +0200 @@ -5,18 +5,22 @@ =================================================================== --- glibc-2.19.orig/sysdeps/posix/getaddrinfo.c +++ glibc-2.19/sysdeps/posix/getaddrinfo.c -@@ -710,6 +710,14 @@ gaih_inet (const char *name, const struc - struct gaih_addrtuple *addrfree = addrmem; - for (int i = 0; i < air->naddrs; ++i) +@@ -712,6 +712,18 @@ gaih_inet (const char *name, const struc { + socklen_t size = (air->family[i] == AF_INET + ? INADDRSZ : IN6ADDRSZ); ++ + if (!((air->family[i] == AF_INET + && req->ai_family == AF_INET6 + && (req->ai_flags & AI_V4MAPPED) != 0) + || req->ai_family == AF_UNSPEC + || air->family[i] == req->ai_family)) -+ /* Skip over non-matching result. */ -+ continue; ++ { ++ /* Skip over non-matching result. */ ++ addrs += size; ++ continue; ++ } + - socklen_t size = (air->family[i] == AF_INET - ? INADDRSZ : IN6ADDRSZ); if (*pat == NULL) + { + *pat = addrfree++; ++++++ nss-nis-stack-use.patch ++++++ 2014-05-12 Andreas Schwab <sch...@suse.de> [BZ #16932] * nis/nss_nis/nis-hosts.c (internal_gethostbyname2_r) (_nss_nis_gethostbyname4_r): Return error if item length is larger than maximum RPC packet size. * nis/nss_nis/nis-initgroups.c (initgroups_netid): Likewise. * nis/nss_nis/nis-network.c (_nss_nis_getnetbyname_r): Likewise. * nis/nss_nis/nis-service.c (_nss_nis_getservbyname_r) (_nss_nis_getservbyport_r): Likewise. Index: glibc-2.19/nis/nss_nis/nis-hosts.c =================================================================== --- glibc-2.19.orig/nis/nss_nis/nis-hosts.c +++ glibc-2.19/nis/nss_nis/nis-hosts.c @@ -270,6 +270,13 @@ internal_gethostbyname2_r (const char *n /* Convert name to lowercase. */ size_t namlen = strlen (name); + /* Limit name length to the maximum size of an RPC packet. */ + if (namlen > UDPMSGSIZE) + { + *errnop = ERANGE; + return NSS_STATUS_UNAVAIL; + } + char name2[namlen + 1]; size_t i; @@ -461,6 +468,13 @@ _nss_nis_gethostbyname4_r (const char *n /* Convert name to lowercase. */ size_t namlen = strlen (name); + /* Limit name length to the maximum size of an RPC packet. */ + if (namlen > UDPMSGSIZE) + { + *errnop = ERANGE; + return NSS_STATUS_UNAVAIL; + } + char name2[namlen + 1]; size_t i; Index: glibc-2.19/nis/nss_nis/nis-initgroups.c =================================================================== --- glibc-2.19.orig/nis/nss_nis/nis-initgroups.c +++ glibc-2.19/nis/nss_nis/nis-initgroups.c @@ -150,6 +150,13 @@ initgroups_netid (uid_t uid, gid_t group gid_t **groupsp, long int limit, int *errnop, const char *domainname) { + /* Limit domainname length to the maximum size of an RPC packet. */ + if (strlen (domainname) > UDPMSGSIZE) + { + *errnop = ERANGE; + return NSS_STATUS_UNAVAIL; + } + /* Prepare the key. The form is "unix.UID@DOMAIN" with the UID and DOMAIN field filled in appropriately. */ char key[sizeof ("unix.@") + sizeof (uid_t) * 3 + strlen (domainname)]; Index: glibc-2.19/nis/nss_nis/nis-network.c =================================================================== --- glibc-2.19.orig/nis/nss_nis/nis-network.c +++ glibc-2.19/nis/nss_nis/nis-network.c @@ -179,6 +179,13 @@ _nss_nis_getnetbyname_r (const char *nam /* Convert name to lowercase. */ size_t namlen = strlen (name); + /* Limit name length to the maximum size of an RPC packet. */ + if (namlen > UDPMSGSIZE) + { + *errnop = ERANGE; + return NSS_STATUS_UNAVAIL; + } + char name2[namlen + 1]; size_t i; Index: glibc-2.19/nis/nss_nis/nis-service.c =================================================================== --- glibc-2.19.orig/nis/nss_nis/nis-service.c +++ glibc-2.19/nis/nss_nis/nis-service.c @@ -271,6 +271,13 @@ _nss_nis_getservbyname_r (const char *na /* If the protocol is given, we could try if our NIS server knows about services.byservicename map. If yes, we only need one query. */ size_t keylen = strlen (name) + (protocol ? 1 + strlen (protocol) : 0); + /* Limit key length to the maximum size of an RPC packet. */ + if (keylen > UDPMSGSIZE) + { + *errnop = ERANGE; + return NSS_STATUS_UNAVAIL; + } + char key[keylen + 1]; /* key is: "name/proto" */ @@ -355,6 +362,13 @@ _nss_nis_getservbyport_r (int port, cons Otherwise try first port/tcp, then port/udp and then fallback to sequential scanning of services.byname. */ const char *proto = protocol != NULL ? protocol : "tcp"; + /* Limit protocol name length to the maximum size of an RPC packet. */ + if (strlen (proto) > UDPMSGSIZE) + { + *errnop = ERANGE; + return NSS_STATUS_UNAVAIL; + } + do { /* key is: "port/proto" */ -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org