From 1760874da6e4a6934751ea12cf2c06eae936b53c Mon Sep 17 00:00:00 2001 From: Thomas Jarosch Date: Sat, 29 Oct 2011 12:24:38 -0400 Subject: [PATCH] Fix readlink call in ldconfig's chroot handling --- ChangeLog | 4 ++++ NEWS | 5 +++-- elf/chroot_canon.c | 4 ++-- 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 + [BZ #13335] + * elf/chroot_canon.c (chroot_canon): Fix readlink call. + Patch by Thomas Jarosch . + * 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')