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

Reply via email to