diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-05-19 22:15:15 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-05-19 22:15:15 +0000 |
commit | a7a76ca014ba8965814552bcf984616f79394795 (patch) | |
tree | 13b8e13c177b44c40b24f5be21a0aef815e5eb0f /app-arch | |
parent | New version (diff) | |
download | gentoo-2-a7a76ca014ba8965814552bcf984616f79394795.tar.gz gentoo-2-a7a76ca014ba8965814552bcf984616f79394795.tar.bz2 gentoo-2-a7a76ca014ba8965814552bcf984616f79394795.zip |
Add patch from Redhat to fix CAN-2005-0953.
(Portage version: 2.0.51.22-r1)
Diffstat (limited to 'app-arch')
-rw-r--r-- | app-arch/bzip2/ChangeLog | 8 | ||||
-rw-r--r-- | app-arch/bzip2/bzip2-1.0.3-r3.ebuild | 78 | ||||
-rw-r--r-- | app-arch/bzip2/files/bzip2-1.0.2-chmod.patch | 98 | ||||
-rw-r--r-- | app-arch/bzip2/files/digest-bzip2-1.0.3-r3 | 1 |
4 files changed, 184 insertions, 1 deletions
diff --git a/app-arch/bzip2/ChangeLog b/app-arch/bzip2/ChangeLog index 5b890c678c57..7aa1f66dc191 100644 --- a/app-arch/bzip2/ChangeLog +++ b/app-arch/bzip2/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-arch/bzip2 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/ChangeLog,v 1.24 2005/05/14 17:36:14 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/ChangeLog,v 1.25 2005/05/19 22:15:15 vapier Exp $ + +*bzip2-1.0.3-r3 (19 May 2005) + + 19 May 2005; Mike Frysinger <vapier@gentoo.org> + +files/bzip2-1.0.2-chmod.patch, +bzip2-1.0.3-r3.ebuild: + Add patch from Redhat to fix CAN-2005-0953. *bzip2-1.0.3-r2 (14 May 2005) diff --git a/app-arch/bzip2/bzip2-1.0.3-r3.ebuild b/app-arch/bzip2/bzip2-1.0.3-r3.ebuild new file mode 100644 index 000000000000..dfe226c0b86b --- /dev/null +++ b/app-arch/bzip2/bzip2-1.0.3-r3.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/bzip2-1.0.3-r3.ebuild,v 1.1 2005/05/19 22:15:15 vapier Exp $ + +inherit multilib toolchain-funcs flag-o-matic + +DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux" +HOMEPAGE="http://www.bzip.org/" +SRC_URI="http://www.bzip.org/${PV}/${P}.tar.gz" + +LICENSE="BZIP2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="build static" + +DEPEND="" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${PN}-1.0.2-NULL-ptr-check.patch + epatch "${FILESDIR}"/${P}-makefile-CFLAGS.patch + epatch "${FILESDIR}"/${P}-saneso.patch + epatch "${FILESDIR}"/${PN}-1.0.2-progress.patch + epatch "${FILESDIR}"/${PN}-1.0.2-chmod.patch + sed -i -e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' Makefile || die "sed manpath" + + # - Generate symlinks instead of hardlinks + # - pass custom variables to control libdir + sed -i \ + -e 's:ln $(PREFIX)/bin/:ln -s :' \ + -e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \ + Makefile || die "sed links" + + # bzip2 will to run itself after it has built itself which we + # can't do if we are cross compiling. -solar + if [[ -x /bin/bzip2 ]] && tc-is-cross-compiler ; then + sed -i -e 's:./bzip2 -:bzip2 -:g' Makefile || die "sed cross-compile" + fi +} + +src_compile() { + local makeopts=" + CC=$(tc-getCC) + AR=$(tc-getAR) + RANLIB=$(tc-getRANLIB) + " + if ! use build ; then + emake ${makeopts} -f Makefile-libbz2_so all || die "Make failed libbz2" + fi + use static && append-flags -static + emake ${makeopts} all || die "Make failed" +} + +src_install() { + if ! use build ; then + make PREFIX="${D}"/usr LIBDIR=$(get_libdir) install || die + + # move bzip2 binaries to / and use the shared libbz2.so + mv "${D}"/usr/bin "${D}"/ + into / + if ! use static ; then + newbin bzip2-shared bzip2 || die "dobin shared" + fi + dolib.so "${S}"/libbz2.so.${PV} || die "dolib shared" + for v in ${PV%%.*} ${PV%.*} ; do + dosym libbz2.so.${PV} /$(get_libdir)/libbz2.so.${v} + done + + dodoc README* CHANGES Y2K_INFO bzip2.txt manual.* + else + into / + dobin bzip2 || die "dobin bzip2" + fi + + dosym bzip2 /bin/bzcat + dosym bzip2 /bin/bunzip2 +} diff --git a/app-arch/bzip2/files/bzip2-1.0.2-chmod.patch b/app-arch/bzip2/files/bzip2-1.0.2-chmod.patch new file mode 100644 index 000000000000..a97a2b486294 --- /dev/null +++ b/app-arch/bzip2/files/bzip2-1.0.2-chmod.patch @@ -0,0 +1,98 @@ +Ripped from Fedora for CAN-2005-0953 + +Fixes race condition in setting permissions. + +http://bugzilla.redhat.com/bugzilla/155742 + +--- bzip2-1.0.2/bzip2.c ++++ bzip2-1.0.2/bzip2.c +@@ -312,6 +312,7 @@ + + static void copyFileName ( Char*, Char* ); + static void* myMalloc ( Int32 ); ++static int applySavedFileAttrToOutputFile ( int fd ); + + + +@@ -457,6 +458,10 @@ + ret = fflush ( zStream ); + if (ret == EOF) goto errhandler_io; + if (zStream != stdout) { ++ int fd = fileno ( zStream ); ++ if (fd < 0) goto errhandler_io; ++ ret = applySavedFileAttrToOutputFile ( fd ); ++ if (ret != 0) goto errhandler_io; + ret = fclose ( zStream ); + outputHandleJustInCase = NULL; + if (ret == EOF) goto errhandler_io; +@@ -567,6 +572,12 @@ + + closeok: + if (ferror(zStream)) goto errhandler_io; ++ if ( stream != stdout) { ++ int fd = fileno ( stream ); ++ if (fd < 0) goto errhandler_io; ++ ret = applySavedFileAttrToOutputFile ( fd ); ++ if (ret != 0) goto errhandler_io; ++ } + ret = fclose ( zStream ); + if (ret == EOF) goto errhandler_io; + +@@ -1125,7 +1136,7 @@ + + + static +-void applySavedMetaInfoToOutputFile ( Char *dstName ) ++void applySavedTimeInfoToOutputFile ( Char *dstName ) + { + # if BZ_UNIX + IntNative retVal; +@@ -1134,16 +1145,26 @@ + uTimBuf.actime = fileMetaInfo.st_atime; + uTimBuf.modtime = fileMetaInfo.st_mtime; + +- retVal = chmod ( dstName, fileMetaInfo.st_mode ); +- ERROR_IF_NOT_ZERO ( retVal ); +- + retVal = utime ( dstName, &uTimBuf ); + ERROR_IF_NOT_ZERO ( retVal ); ++# endif ++} ++ ++static ++int applySavedFileAttrToOutputFile ( int fd ) ++{ ++# if BZ_UNIX ++ IntNative retVal; ++ ++ retVal = fchmod ( fd, fileMetaInfo.st_mode ); ++ if (retVal != 0) ++ return retVal; + +- retVal = chown ( dstName, fileMetaInfo.st_uid, fileMetaInfo.st_gid ); ++ (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid ); + /* chown() will in many cases return with EPERM, which can + be safely ignored. + */ ++ return 0; + # endif + } + +@@ -1366,7 +1387,7 @@ + + /*--- If there was an I/O error, we won't get here. ---*/ + if ( srcMode == SM_F2F ) { +- applySavedMetaInfoToOutputFile ( outName ); ++ applySavedTimeInfoToOutputFile ( outName ); + deleteOutputOnInterrupt = False; + if ( !keepInputFiles ) { + IntNative retVal = remove ( inName ); +@@ -1544,7 +1565,7 @@ + /*--- If there was an I/O error, we won't get here. ---*/ + if ( magicNumberOK ) { + if ( srcMode == SM_F2F ) { +- applySavedMetaInfoToOutputFile ( outName ); ++ applySavedTimeInfoToOutputFile ( outName ); + deleteOutputOnInterrupt = False; + if ( !keepInputFiles ) { + IntNative retVal = remove ( inName ); diff --git a/app-arch/bzip2/files/digest-bzip2-1.0.3-r3 b/app-arch/bzip2/files/digest-bzip2-1.0.3-r3 new file mode 100644 index 000000000000..24bf9c7e285a --- /dev/null +++ b/app-arch/bzip2/files/digest-bzip2-1.0.3-r3 @@ -0,0 +1 @@ +MD5 8a716bebecb6e647d2e8a29ea5d8447f bzip2-1.0.3.tar.gz 669075 |