Fix readlink call in ldconfig's chroot handling
authorThomas Jarosch <thomas.jarosch@intra2net.com>
Sat, 29 Oct 2011 16:24:38 +0000 (12:24 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sat, 29 Oct 2011 16:24:38 +0000 (12:24 -0400)
ChangeLog
NEWS
elf/chroot_canon.c

index 98db094..8e0c37c 100644 (file)
--- 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 6063060..c9952a8 100644 (file)
--- 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.
index 54a6a4c..b639cfa 100644 (file)
@@ -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')