about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--NEWS5
-rw-r--r--elf/chroot_canon.c4
3 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 98db0948cc..8e0c37ca84 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2011-10-29  Ulrich Drepper  <drepper@gmail.com>
 
+	[BZ #13335]
+	* elf/chroot_canon.c (chroot_canon): Fix readlink call.
+	Patch by Thomas Jarosch <thomas.jarosch@intra2net.com>.
+
 	* string/test-strchr.c: Make usable for strchrnul testing.
 	* string/test-strchrnul.c: New file.
 	* string/Makefile (strop-tests): Add strchrnul.
diff --git a/NEWS b/NEWS
index 6063060352..c9952a896e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2011-10-27
+GNU C Library NEWS -- history of user-visible changes.  2011-10-29
 Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -11,7 +11,8 @@ Version 2.15
 
   6779, 6783, 9696, 11589, 12403, 12847, 12868, 12852, 12874, 12885, 12892,
   12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092, 13114,
-  13118, 13123, 13134, 13138, 13150, 13179, 13192, 13268, 13291, 13344
+  13118, 13123, 13134, 13138, 13150, 13179, 13192, 13268, 13291, 13335,
+  13344
 
 * New program pldd to list loaded object of a process
   Implemented by Ulrich Drepper.
diff --git a/elf/chroot_canon.c b/elf/chroot_canon.c
index 54a6a4cc96..b639cfa82d 100644
--- a/elf/chroot_canon.c
+++ b/elf/chroot_canon.c
@@ -1,5 +1,5 @@
 /* Return the canonical absolute name of a given file inside chroot.
-   Copyright (C) 1996,1997,1998,1999,2000,2001,2004,2005,2010
+   Copyright (C) 1996,1997,1998,1999,2000,2001,2004,2005,2010,2011
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -135,7 +135,7 @@ chroot_canon (const char *chroot, const char *name)
 		  goto error;
 		}
 
-	      n = readlink (rpath, buf, PATH_MAX);
+	      n = readlink (rpath, buf, PATH_MAX - 1);
 	      if (n < 0)
 		{
 		  if (*end == '\0')