[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r6693 - in glibc-package/branches/glibc-2.21/debian: . patches patches/any



Author: aurel32
Date: 2015-11-22 18:26:33 +0000 (Sun, 22 Nov 2015)
New Revision: 6693

Removed:
   glibc-package/branches/glibc-2.21/debian/patches/any/cvs-make-typo.diff
Modified:
   glibc-package/branches/glibc-2.21/debian/changelog
   glibc-package/branches/glibc-2.21/debian/patches/git-updates.diff
   glibc-package/branches/glibc-2.21/debian/patches/series
Log:
* Update from upstream stable branch:
  - patches/any/cvs-make-typo.diff: Merged. 

Modified: glibc-package/branches/glibc-2.21/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.21/debian/changelog	2015-11-22 18:13:29 UTC (rev 6692)
+++ glibc-package/branches/glibc-2.21/debian/changelog	2015-11-22 18:26:33 UTC (rev 6693)
@@ -40,6 +40,8 @@
     check-localplt test with recent binutils version on x86.
   * patches/hppa/submitted-gmon-start.diff: new patch from upstream to
     fix __gmon_start__ symbol proliferation on hppa.  Closes: #805730.
+  * Update from upstream stable branch:
+    - patches/any/cvs-make-typo.diff: Merged. 
 
   [ Samuel Thibault ]
   * patches/hurd-i386/tg-pagesize.diff: Refresh.

Deleted: glibc-package/branches/glibc-2.21/debian/patches/any/cvs-make-typo.diff
===================================================================
--- glibc-package/branches/glibc-2.21/debian/patches/any/cvs-make-typo.diff	2015-11-22 18:13:29 UTC (rev 6692)
+++ glibc-package/branches/glibc-2.21/debian/patches/any/cvs-make-typo.diff	2015-11-22 18:26:33 UTC (rev 6693)
@@ -1,19 +0,0 @@
-commit e8b6be0016f131c2ac72bf3213eabdb59800e63b
-Author: Andreas Schwab <schwab@suse.de>
-Date:   Mon Mar 2 15:47:56 2015 +0100
-
-    Fix parallel build error
-
-diff --git a/elf/Makefile b/elf/Makefile
-index 20b1682..711beed 100644
---- a/elf/Makefile
-+++ b/elf/Makefile
-@@ -362,7 +362,7 @@ $(objpfx)interp.os: $(elf-objpfx)runtime-linker.h
- 
- $(elf-objpfx)runtime-linker.h: $(elf-objpfx)runtime-linker.st; @:
- $(elf-objpfx)runtime-linker.st: $(common-objpfx)config.make
--	$(name-target-directory)
-+	$(make-target-directory)
- 	echo '#define RUNTIME_LINKER "$(rtlddir)/$(rtld-installed-name)"' \
- 		> ${@:st=T}
- 	$(move-if-change) ${@:st=T} ${@:st=h}

Modified: glibc-package/branches/glibc-2.21/debian/patches/git-updates.diff
===================================================================
--- glibc-package/branches/glibc-2.21/debian/patches/git-updates.diff	2015-11-22 18:13:29 UTC (rev 6692)
+++ glibc-package/branches/glibc-2.21/debian/patches/git-updates.diff	2015-11-22 18:26:33 UTC (rev 6693)
@@ -1,10 +1,33 @@
 GIT update of git://sourceware.org/git/glibc.git/release/2.21/master from glibc-2.21
 
 diff --git a/ChangeLog b/ChangeLog
-index dc1ed1b..61e6671 100644
+index dc1ed1b..868d355 100644
 --- a/ChangeLog
 +++ b/ChangeLog
-@@ -1,3 +1,40 @@
+@@ -1,3 +1,63 @@
++2015-03-02  Andreas Schwab  <schwab@suse.de>
++
++	* elf/Makefile ($(elf-objpfx)runtime-linker.st): Fix typo in
++	variable name.
++
++2015-04-29  Florian Weimer  <fweimer@redhat.com>
++
++	[BZ #18007]
++	* nss/nss_files/files-XXX.c (CONCAT): Always enable stayopen.
++	(CVE-2014-8121)
++	* nss/tst-nss-getpwent.c: New file.
++	* nss/Makefile (tests): Add new test.
++
++2015-08-28  Mike Frysinger  <vapier@gentoo.org>
++
++	[BZ #18887]
++	* misc/Makefile (tests): Add tst-mntent-blank-corrupt and
++	tst-mntent-blank-passno.
++	* misc/mntent_r.c (__getmntent_r): Do not read past buffer[0].
++	* misc/tst-mntent-blank-corrupt.c: New test.
++	* misc/tst-mntent-blank-passno.c: New test ripped from ...
++	* misc/tst-mntent.c (do_test): ... here.
++
 +2015-07-27  Mike Frysinger  <vapier@gentoo.org>
 +
 +	* sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Define
@@ -45,7 +68,7 @@
  2015-02-06  Carlos O'Donell  <carlos@systemhalted.org>
  
  	* version.h (RELEASE): Set to "stable".
-@@ -7,6 +44,7 @@
+@@ -7,6 +67,7 @@
  	* sysdeps/unix/sysv/linux/hppa/pthread.h: Sync with pthread.h.
  
  2015-02-05  Paul Pluzhnikov  <ppluzhnikov@google.com>
@@ -54,10 +77,10 @@
  	[BZ #16618]
  	* stdio-common/tst-sscanf.c (main): Test for buffer overflow.
 diff --git a/NEWS b/NEWS
-index 617cdbb..e3588fc 100644
+index 617cdbb..3014c08 100644
 --- a/NEWS
 +++ b/NEWS
-@@ -5,6 +5,23 @@ See the end for copying conditions.
+@@ -5,6 +5,28 @@ See the end for copying conditions.
  Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
  using `glibc' in the "product" field.
  
@@ -65,7 +88,7 @@
 +
 +* The following bugs are resolved with this release:
 +
-+  17269, 17949, 18032, 18287, 18694.
++  17269, 17949, 18007, 18032, 18287, 18694, 18887.
 +
 +* A buffer overflow in gethostbyname_r and related functions performing DNS
 +  requests has been fixed.  If the NSS functions were called with a
@@ -77,11 +100,16 @@
 +* The 32-bit sparc sigaction ABI was inadvertently broken in the 2.20 and 2.21
 +  releases.  It has been fixed to match 2.19 and older, but binaries built
 +  against 2.20 and 2.21 might need to be recompiled.  See BZ#18694.
++
++* CVE-2014-8121 The NSS files backend would reset the file pointer used by
++  the get*ent functions if any of the query functions for the same database
++  are used during the iteration, causing a denial-of-service condition in
++  some applications.
 +
  Version 2.21
  
  * The following bugs are resolved with this release:
-@@ -21,10 +38,11 @@ Version 2.21
+@@ -21,10 +43,11 @@ Version 2.21
    17801, 17803, 17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885,
    17892.
  
@@ -97,6 +125,19 @@
  
  * A new semaphore algorithm has been implemented in generic C code for all
    machines. Previous custom assembly implementations of semaphore were
+diff --git a/elf/Makefile b/elf/Makefile
+index e5b142c..62fe245 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -358,7 +358,7 @@ $(objpfx)interp.os: $(elf-objpfx)runtime-linker.h
+ 
+ $(elf-objpfx)runtime-linker.h: $(elf-objpfx)runtime-linker.st; @:
+ $(elf-objpfx)runtime-linker.st: $(common-objpfx)config.make
+-	$(name-target-directory)
++	$(make-target-directory)
+ 	echo '#define RUNTIME_LINKER "$(rtlddir)/$(rtld-installed-name)"' \
+ 		> ${@:st=T}
+ 	$(move-if-change) ${@:st=T} ${@:st=h}
 diff --git a/libio/wstrops.c b/libio/wstrops.c
 index 43d847d..3993579 100644
 --- a/libio/wstrops.c
@@ -124,6 +165,326 @@
    wchar_t *oldbuf = wd->_IO_buf_base;
    wchar_t *newbuf
      = (wchar_t *) (*((_IO_strfile *) fp)->_s._allocate_buffer) (newsize
+diff --git a/misc/Makefile b/misc/Makefile
+index aecb0da..2f5edf6 100644
+--- a/misc/Makefile
++++ b/misc/Makefile
+@@ -76,7 +76,8 @@ install-lib := libg.a
+ gpl2lgpl := error.c error.h
+ 
+ tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \
+-	 tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1
++	 tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \
++	 tst-mntent-blank-corrupt tst-mntent-blank-passno
+ ifeq ($(run-built-tests),yes)
+ tests-special += $(objpfx)tst-error1-mem.out
+ endif
+diff --git a/misc/mntent_r.c b/misc/mntent_r.c
+index 6159873..4f26998 100644
+--- a/misc/mntent_r.c
++++ b/misc/mntent_r.c
+@@ -136,7 +136,9 @@ __getmntent_r (FILE *stream, struct mntent *mp, char *buffer, int bufsiz)
+       end_ptr = strchr (buffer, '\n');
+       if (end_ptr != NULL)	/* chop newline */
+ 	{
+-	  while (end_ptr[-1] == ' ' || end_ptr[-1] == '\t')
++	  /* Do not walk past the start of buffer if it's all whitespace.  */
++	  while (end_ptr != buffer
++		 && (end_ptr[-1] == ' ' || end_ptr[-1] == '\t'))
+             end_ptr--;
+ 	  *end_ptr = '\0';
+ 	}
+diff --git a/misc/tst-mntent-blank-corrupt.c b/misc/tst-mntent-blank-corrupt.c
+new file mode 100644
+index 0000000..92266a3
+--- /dev/null
++++ b/misc/tst-mntent-blank-corrupt.c
+@@ -0,0 +1,45 @@
++/* Make sure blank lines does not cause memory corruption BZ #18887.
++
++   Copyright (C) 2009-2015 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 <mntent.h>
++#include <stdio.h>
++#include <string.h>
++
++/* Make sure blank lines don't trigger memory corruption.  This doesn't happen
++   for all targets though, so it's a best effort test BZ #18887.  */
++static int
++do_test (void)
++{
++  FILE *fp;
++
++  fp = tmpfile ();
++  fputs ("\n \n/foo\\040dir /bar\\040dir auto bind \t \n", fp);
++  rewind (fp);
++
++  /* The corruption happens here ...  */
++  getmntent (fp);
++  /* ... but trigers here.  */
++  endmntent (fp);
++
++  /* If the test failed, we would crash, and not hit this point.  */
++  return 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/misc/tst-mntent-blank-passno.c b/misc/tst-mntent-blank-passno.c
+new file mode 100644
+index 0000000..fc04291
+--- /dev/null
++++ b/misc/tst-mntent-blank-passno.c
+@@ -0,0 +1,53 @@
++/* Make sure trailing whitespace is handled properly BZ #17273.
++
++   Copyright (C) 2009-2015 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 <mntent.h>
++#include <stdio.h>
++#include <string.h>
++
++/* Check entries to make sure trailing whitespace is ignored and we return the
++   correct passno value BZ #17273.  */
++static int
++do_test (void)
++{
++  int result = 0;
++  FILE *fp;
++  struct mntent *mnt;
++
++  fp = tmpfile ();
++  fputs ("/foo\\040dir /bar\\040dir auto bind \t \n", fp);
++  rewind (fp);
++
++  mnt = getmntent (fp);
++  if (strcmp (mnt->mnt_fsname, "/foo dir") != 0
++      || strcmp (mnt->mnt_dir, "/bar dir") != 0
++      || strcmp (mnt->mnt_type, "auto") != 0
++      || strcmp (mnt->mnt_opts, "bind") != 0
++      || mnt->mnt_freq != 0
++      || mnt->mnt_passno != 0)
++    {
++      puts ("Error while reading entry with trailing whitespaces");
++      result = 1;
++    }
++
++  return result;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/misc/tst-mntent.c b/misc/tst-mntent.c
+index 876c89f..820b354 100644
+--- a/misc/tst-mntent.c
++++ b/misc/tst-mntent.c
+@@ -73,26 +73,6 @@ main (int argc, char *argv[])
+ 	  puts ("Error while reading written entry back in");
+ 	  result = 1;
+ 	}
+-
+-      /* Part III: Entry with whitespaces at the end of a line. */
+-      rewind (fp);
+-
+-      fputs ("/foo\\040dir /bar\\040dir auto bind \t \n", fp);
+-
+-      rewind (fp);
+-
+-      mnt = getmntent (fp);
+-
+-      if (strcmp (mnt->mnt_fsname, "/foo dir") != 0
+-	  || strcmp (mnt->mnt_dir, "/bar dir") != 0
+-	  || strcmp (mnt->mnt_type, "auto") != 0
+-	  || strcmp (mnt->mnt_opts, "bind") != 0
+-	  || mnt->mnt_freq != 0
+-	  || mnt->mnt_passno != 0)
+-	{
+-	  puts ("Error while reading entry with trailing whitespaces");
+-	  result = 1;
+-	}
+    }
+ 
+   return result;
+diff --git a/nss/Makefile b/nss/Makefile
+index d419baf..dc351dd 100644
+--- a/nss/Makefile
++++ b/nss/Makefile
+@@ -39,7 +39,7 @@ install-bin             := getent makedb
+ makedb-modules = xmalloc hash-string
+ extra-objs		+= $(makedb-modules:=.o)
+ 
+-tests			= test-netdb tst-nss-test1 test-digits-dots
++tests			= test-netdb tst-nss-test1 test-digits-dots tst-nss-getpwent
+ xtests			= bug-erange
+ 
+ # Specify rules for the nss_* modules.  We have some services.
+diff --git a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c
+index a7a45e5..a7ce5ea 100644
+--- a/nss/nss_files/files-XXX.c
++++ b/nss/nss_files/files-XXX.c
+@@ -134,7 +134,7 @@ CONCAT(_nss_files_set,ENTNAME) (int stayopen)
+ 
+   __libc_lock_lock (lock);
+ 
+-  status = internal_setent (stayopen);
++  status = internal_setent (1);
+ 
+   if (status == NSS_STATUS_SUCCESS && fgetpos (stream, &position) < 0)
+     {
+diff --git a/nss/tst-nss-getpwent.c b/nss/tst-nss-getpwent.c
+new file mode 100644
+index 0000000..f2e8abc
+--- /dev/null
++++ b/nss/tst-nss-getpwent.c
+@@ -0,0 +1,118 @@
++/* Copyright (C) 2015 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 <pwd.h>
++#include <stdbool.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++int
++do_test (void)
++{
++  /* Count the number of entries in the password database, and fetch
++     data from the first and last entries.  */
++  size_t count = 0;
++  struct passwd * pw;
++  char *first_name = NULL;
++  uid_t first_uid = 0;
++  char *last_name = NULL;
++  uid_t last_uid = 0;
++  setpwent ();
++  while ((pw  = getpwent ()) != NULL)
++    {
++      if (first_name == NULL)
++	{
++	  first_name = strdup (pw->pw_name);
++	  if (first_name == NULL)
++	    {
++	      printf ("strdup: %m\n");
++	      return 1;
++	    }
++	  first_uid = pw->pw_uid;
++	}
++
++      free (last_name);
++      last_name = strdup (pw->pw_name);
++      if (last_name == NULL)
++	{
++	  printf ("strdup: %m\n");
++	  return 1;
++	}
++      last_uid = pw->pw_uid;
++      ++count;
++    }
++  endpwent ();
++
++  if (count == 0)
++    {
++      printf ("No entries in the password database.\n");
++      return 0;
++    }
++
++  /* Try again, this time interleaving with name-based and UID-based
++     lookup operations.  The counts do not match if the interleaved
++     lookups affected the enumeration.  */
++  size_t new_count = 0;
++  setpwent ();
++  while ((pw  = getpwent ()) != NULL)
++    {
++      if (new_count == count)
++	{
++	  printf ("Additional entry in the password database.\n");
++	  return 1;
++	}
++      ++new_count;
++      struct passwd *pw2 = getpwnam (first_name);
++      if (pw2 == NULL)
++	{
++	  printf ("getpwnam (%s) failed: %m\n", first_name);
++	  return 1;
++	}
++      pw2 = getpwnam (last_name);
++      if (pw2 == NULL)
++	{
++	  printf ("getpwnam (%s) failed: %m\n", last_name);
++	  return 1;
++	}
++      pw2 = getpwuid (first_uid);
++      if (pw2 == NULL)
++	{
++	  printf ("getpwuid (%llu) failed: %m\n",
++		  (unsigned long long) first_uid);
++	  return 1;
++	}
++      pw2 = getpwuid (last_uid);
++      if (pw2 == NULL)
++	{
++	  printf ("getpwuid (%llu) failed: %m\n",
++		  (unsigned long long) last_uid);
++	  return 1;
++	}
++    }
++  endpwent ();
++  if (new_count < count)
++    {
++      printf ("Missing entry in the password database.\n");
++      return 1;
++    }
++
++  return 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
 diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
 index c0cb2fc..72c5d8f 100644
 --- a/posix/fnmatch_loop.c

Modified: glibc-package/branches/glibc-2.21/debian/patches/series
===================================================================
--- glibc-package/branches/glibc-2.21/debian/patches/series	2015-11-22 18:13:29 UTC (rev 6692)
+++ glibc-package/branches/glibc-2.21/debian/patches/series	2015-11-22 18:26:33 UTC (rev 6693)
@@ -268,7 +268,6 @@
 any/local-tester-gcc-4.9.diff
 any/local-xfail-stdlib-linkns.diff
 any/cvs-localplt-new-readelf.diff
-any/cvs-make-typo.diff
 any/cvs-logbl-accuracy.diff
 any/local-math-logb.diff
 any/cvs-ld_pointer_guard.diff


Reply to: