summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2014-10-24 17:24:09 +0000
committerMike Frysinger <vapier@gentoo.org>2014-10-24 17:24:09 +0000
commitbe3de575a3abc7744281de1103335320fca43061 (patch)
treee8a86a6439293d8572eeb449b24987e8b53c16b7 /sys-apps
parentsci-physics/lammps: Added new version 20140905 (diff)
downloadgentoo-2-be3de575a3abc7744281de1103335320fca43061.tar.gz
gentoo-2-be3de575a3abc7744281de1103335320fca43061.tar.bz2
gentoo-2-be3de575a3abc7744281de1103335320fca43061.zip
Add fix from upstream for ELF note parsing #526544 by Agostino Sarubbo.
(Portage version: 2.2.14_rc1/cvs/Linux x86_64, signed Manifest commit with key D2E96200)
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/file/ChangeLog8
-rw-r--r--sys-apps/file/file-5.20-r1.ebuild107
-rw-r--r--sys-apps/file/files/file-5.20-elf-note.patch37
3 files changed, 151 insertions, 1 deletions
diff --git a/sys-apps/file/ChangeLog b/sys-apps/file/ChangeLog
index 51a2aacfb05e..acbd1dc987b1 100644
--- a/sys-apps/file/ChangeLog
+++ b/sys-apps/file/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-apps/file
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/file/ChangeLog,v 1.282 2014/10/22 19:22:17 maekke Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/file/ChangeLog,v 1.283 2014/10/24 17:24:09 vapier Exp $
+
+*file-5.20-r1 (24 Oct 2014)
+
+ 24 Oct 2014; Mike Frysinger <vapier@gentoo.org> +file-5.20-r1.ebuild,
+ +files/file-5.20-elf-note.patch:
+ Add fix from upstream for ELF note parsing #526544 by Agostino Sarubbo.
22 Oct 2014; Markus Meier <maekke@gentoo.org> file-5.19.ebuild:
arm stable, bug #524986
diff --git a/sys-apps/file/file-5.20-r1.ebuild b/sys-apps/file/file-5.20-r1.ebuild
new file mode 100644
index 000000000000..71809400950f
--- /dev/null
+++ b/sys-apps/file/file-5.20-r1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/file/file-5.20-r1.ebuild,v 1.1 2014/10/24 17:24:09 vapier Exp $
+
+EAPI="4"
+PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3,3_4} pypy2_0 )
+DISTUTILS_OPTIONAL=1
+
+inherit eutils distutils-r1 libtool toolchain-funcs multilib-minimal
+
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="git://github.com/glensc/file.git"
+ inherit autotools git-r3
+else
+ SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz
+ ftp://ftp.gw.com/mirrors/pub/unix/file/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
+fi
+
+DESCRIPTION="identify a file's format by scanning binary data for patterns"
+HOMEPAGE="http://www.darwinsys.com/file/"
+
+LICENSE="BSD-2"
+SLOT="0"
+IUSE="python static-libs zlib"
+
+DEPEND="python? ( ${PYTHON_DEPS} )
+ zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
+ abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20131008-r21
+ !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"
+RDEPEND="${DEPEND}
+ python? ( !dev-python/python-magic )"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-elf-note.patch #526544
+
+ [[ ${PV} == "9999" ]] && eautoreconf
+ elibtoolize
+
+ # don't let python README kill main README #60043
+ mv python/README{,.python}
+}
+
+multilib_src_configure() {
+ ECONF_SOURCE=${S} \
+ ac_cv_header_zlib_h=$(usex zlib) \
+ ac_cv_lib_z_gzopen=$(usex zlib)
+ econf \
+ $(use_enable static-libs static)
+}
+
+src_configure() {
+ # when cross-compiling, we need to build up our own file
+ # because people often don't keep matching host/target
+ # file versions #362941
+ if tc-is-cross-compiler && ! ROOT=/ has_version ~${CATEGORY}/${P} ; then
+ mkdir -p "${WORKDIR}"/build
+ cd "${WORKDIR}"/build
+ tc-export_build_env BUILD_C{C,XX}
+ ECONF_SOURCE=${S} \
+ ac_cv_header_zlib_h=no \
+ ac_cv_lib_z_gzopen=no \
+ CHOST=${CBUILD} \
+ CFLAGS=${BUILD_CFLAGS} \
+ CXXFLAGS=${BUILD_CXXFLAGS} \
+ CPPFLAGS=${BUILD_CPPFLAGS} \
+ LDFLAGS="${BUILD_LDFLAGS} -static" \
+ CC=${BUILD_CC} \
+ CXX=${BUILD_CXX} \
+ econf --disable-shared
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi ; then
+ emake
+ else
+ emake -C src libmagic.la
+ fi
+}
+
+src_compile() {
+ if tc-is-cross-compiler && ! ROOT=/ has_version ~${CATEGORY}/${P} ; then
+ emake -C "${WORKDIR}"/build/src file
+ PATH="${WORKDIR}/build/src:${PATH}"
+ fi
+ multilib-minimal_src_compile
+
+ use python && cd python && distutils-r1_src_compile
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi ; then
+ default
+ else
+ emake -C src install-{includeHEADERS,libLTLIBRARIES} DESTDIR="${D}"
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc ChangeLog MAINT README
+
+ use python && cd python && distutils-r1_src_install
+ prune_libtool_files
+}
diff --git a/sys-apps/file/files/file-5.20-elf-note.patch b/sys-apps/file/files/file-5.20-elf-note.patch
new file mode 100644
index 000000000000..994dd73943d5
--- /dev/null
+++ b/sys-apps/file/files/file-5.20-elf-note.patch
@@ -0,0 +1,37 @@
+https://bugs.gentoo.org/526544
+
+From 39c7ac1106be844a5296d3eb5971946cc09ffda0 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Fri, 17 Oct 2014 15:49:00 +0000
+Subject: [PATCH] Fix note bounds reading, Francisco Alonso / Red Hat
+
+---
+ ChangeLog | 4 ++++
+ src/readelf.c | 9 ++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+2014-10-17 11:48 Christos Zoulas <christos@zoulas.com>
+
+ * fix bounds in note reading (Francisco Alonso / Red Hat)
+
+diff --git a/src/readelf.c b/src/readelf.c
+index 08f81f5..9ebdebd 100644
+--- a/src/readelf.c
++++ b/src/readelf.c
+@@ -477,6 +477,13 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size,
+ uint32_t namesz, descsz;
+ unsigned char *nbuf = CAST(unsigned char *, vbuf);
+
++ if (xnh_sizeof + offset > size) {
++ /*
++ * We're out of note headers.
++ */
++ return xnh_sizeof + offset;
++ }
++
+ (void)memcpy(xnh_addr, &nbuf[offset], xnh_sizeof);
+ offset += xnh_sizeof;
+
+--
+2.1.2
+