diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2018-04-07 22:14:58 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2018-04-07 22:48:48 +0200 |
commit | 0bdae1a3845db5572b948a1f8a2cfb3d31b042ef (patch) | |
tree | c55d5018c9d107671fe82d80fe41ad79afc016ff /dev-libs | |
parent | sci-libs/chemkit: Fix HOMEPAGE, chemkit.org dead for some time (diff) | |
download | gentoo-0bdae1a3845db5572b948a1f8a2cfb3d31b042ef.tar.gz gentoo-0bdae1a3845db5572b948a1f8a2cfb3d31b042ef.tar.bz2 gentoo-0bdae1a3845db5572b948a1f8a2cfb3d31b042ef.zip |
dev-libs/libcdio: Fix I/O leak w/ unreadable ISO file
DOCS to array, drop ltprune for find.
Package-Manager: Portage-2.3.28, Repoman-2.3.9
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/libcdio/files/libcdio-2.0.0-iso-ioleak.patch | 37 | ||||
-rw-r--r-- | dev-libs/libcdio/libcdio-2.0.0-r1.ebuild | 75 |
2 files changed, 112 insertions, 0 deletions
diff --git a/dev-libs/libcdio/files/libcdio-2.0.0-iso-ioleak.patch b/dev-libs/libcdio/files/libcdio-2.0.0-iso-ioleak.patch new file mode 100644 index 000000000000..17732104c3d1 --- /dev/null +++ b/dev-libs/libcdio/files/libcdio-2.0.0-iso-ioleak.patch @@ -0,0 +1,37 @@ +From 8c0de2d3f0324ecf3fd135589589dcd783c15556 Mon Sep 17 00:00:00 2001 +From: rocky <rocky@gnu.org> +Date: Fri, 16 Feb 2018 09:14:17 -0500 +Subject: Fix small I/O leak when we can't read ISO file + +See Savannah bug #53170. Thanks to David Binderman. +--- + src/iso-read.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/iso-read.c b/src/iso-read.c +index 0541e27..8647485 100644 +--- a/src/iso-read.c ++++ b/src/iso-read.c +@@ -1,5 +1,6 @@ + /* +- Copyright (C) 2004-2006, 2008, 2012-2013, 2017 Rocky Bernstein <rocky@gnu.org> ++ Copyright (C) 2004-2006, 2008, 2012-2013, 2017-2018 Rocky Bernstein ++ <rocky@gnu.org> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -364,7 +365,10 @@ main(int argc, char *argv[]) + ret = read_iso_file (opts.iso9660_image, opts.file_name, + outfd, &bytes_written); + } +- if (ret != 0) return ret; ++ if (ret != 0) { ++ fclose (outfd); ++ return ret; ++ } + + fflush (outfd); + +-- +cgit v1.0-41-gc330 + diff --git a/dev-libs/libcdio/libcdio-2.0.0-r1.ebuild b/dev-libs/libcdio/libcdio-2.0.0-r1.ebuild new file mode 100644 index 000000000000..62bcbab5b554 --- /dev/null +++ b/dev-libs/libcdio/libcdio-2.0.0-r1.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit autotools libtool multilib-minimal + +DESCRIPTION="A library to encapsulate CD-ROM reading and control" +HOMEPAGE="https://www.gnu.org/software/libcdio/" +SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0/18" # subslot is based on SONAME +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris" +IUSE="cddb +cxx minimal static-libs test" + +RDEPEND=" + !minimal? ( + >=sys-libs/ncurses-5.7-r7:0= + cddb? ( >=media-libs/libcddb-1.3.2 ) + ) + >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] +" +DEPEND="${RDEPEND} + sys-apps/sed + sys-devel/gettext + virtual/pkgconfig + test? ( dev-lang/perl ) +" + +DOCS=( AUTHORS ChangeLog NEWS README{,.libcdio} THANKS TODO ) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/cdio/cdio_config.h + /usr/include/cdio/version.h +) + +PATCHES=( "${FILESDIR}/${P}-iso-ioleak.patch" ) + +src_prepare() { + default + + eautoreconf + + sed \ + -e "s:-lncurses:$($(tc-getPKG_CONFIG) --libs ncurses):g" \ + -i configure || die + + elibtoolize # to prevent -L/usr/lib ending up in the linker line wrt 499510 +} + +multilib_src_configure() { + local util_switch + if ! multilib_is_native_abi || use minimal ; then + util_switch="--without" + else + util_switch="--with" + fi + + # Tests fail if ECONF_SOURCE is not relative + ECONF_SOURCE="../${P}" econf \ + --disable-maintainer-mode \ + $(use_enable cxx) \ + --disable-cpp-progs \ + --disable-example-progs \ + $(use_enable static-libs static) \ + $(use_enable cddb) \ + --disable-vcd-info \ + ${util_switch}-{cd-drive,cd-info,cdda-player,cd-read,iso-info,iso-read} +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -name '*.la' -delete || die +} |