summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego Elio Pettenò <flameeyes@gentoo.org>2010-10-08 15:33:13 +0000
committerDiego Elio Pettenò <flameeyes@gentoo.org>2010-10-08 15:33:13 +0000
commitc6fab7dfdce41227cbcd4d6a78c405223164f6e6 (patch)
treee27f39af2f4902fba2b02037a3df03b2ceafdb81 /sys-libs
parentMarking vlc-1.1.4 ~ppc for bug 325007 (diff)
downloadgentoo-2-c6fab7dfdce41227cbcd4d6a78c405223164f6e6.tar.gz
gentoo-2-c6fab7dfdce41227cbcd4d6a78c405223164f6e6.tar.bz2
gentoo-2-c6fab7dfdce41227cbcd4d6a78c405223164f6e6.zip
QA: avoid using $D when testing the just-built loader, as it might cause trouble when it contains colon characters; the fix is trivial.
(Portage version: 2.2_rc91/cvs/Linux x86_64)
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/glibc/ChangeLog7
-rw-r--r--sys-libs/glibc/files/eblits/pkg_preinst.eblit17
2 files changed, 18 insertions, 6 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog
index e18ac7551568..5925ce23b8a5 100644
--- a/sys-libs/glibc/ChangeLog
+++ b/sys-libs/glibc/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for sys-libs/glibc
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.715 2010/09/30 06:29:21 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.716 2010/10/08 15:33:13 flameeyes Exp $
+
+ 08 Oct 2010; Diego E. Pettenò <flameeyes@gentoo.org>
+ files/eblits/pkg_preinst.eblit:
+ QA: avoid using $D when testing the just-built loader, as it might cause
+ trouble when it contains colon characters; the fix is trivial.
30 Sep 2010; Mike Frysinger <vapier@gentoo.org> files/eblits/common.eblit,
files/eblits/src_compile.eblit:
diff --git a/sys-libs/glibc/files/eblits/pkg_preinst.eblit b/sys-libs/glibc/files/eblits/pkg_preinst.eblit
index c161640c7c4c..dcde615cf738 100644
--- a/sys-libs/glibc/files/eblits/pkg_preinst.eblit
+++ b/sys-libs/glibc/files/eblits/pkg_preinst.eblit
@@ -1,6 +1,6 @@
-# Copyright 1999-2009 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/pkg_preinst.eblit,v 1.2 2009/12/19 23:44:54 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/files/eblits/pkg_preinst.eblit,v 1.3 2010/10/08 15:33:13 flameeyes Exp $
fix_lib64_symlinks() {
# the original Gentoo/AMD64 devs decided that since 64bit is the native
@@ -75,9 +75,16 @@ eblit-glibc-pkg_preinst() {
striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null)
[[ -z ${striptest} ]] && continue
[[ ${striptest} == *"statically linked"* ]] && continue
- "${D}"/$(get_libdir)/ld-*.so \
- --library-path "${D}"/$(get_libdir) \
- ${x} > /dev/null \
+ # we enter ${D} so to avoid trouble if the path contains
+ # special characters; for instance if the path contains the
+ # colon character (:), then the linker will try to split it
+ # and look for the libraries in an unexpected place. This can
+ # lead to unsafe code execution if the generated prefix is
+ # within a world-writable directory
+ # (e.g. /var/tmp/portage:${HOSTNAME})
+ pushd "${D}"/$(get_libdir) 2>/dev/null
+ ./ld-*.so --library-path . ${x} > /dev/null \
|| die "simple run test (${x}) failed"
+ popd 2>/dev/null
done
}