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 - schwab(a)suse.de
+
+- add non-elision-enabled libpthread
+
+-------------------------------------------------------------------
+Mon May 12 13:22:40 UTC 2014 - schwab(a)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 - schwab(a)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 <schwab(a)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+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org