Date: Thursday, February 27, 2014 @ 16:13:52 Author: dan Revision: 206480
Make patch checksum stable by including in SVN; FS#39061 Added: libarchive/trunk/0001-Limit-write-requests-to-at-most-INT_MAX.patch Modified: libarchive/trunk/PKGBUILD ----------------------------------------------------+ 0001-Limit-write-requests-to-at-most-INT_MAX.patch | 32 +++++++++++++++++++ PKGBUILD | 8 ++-- 2 files changed, 36 insertions(+), 4 deletions(-) Added: 0001-Limit-write-requests-to-at-most-INT_MAX.patch =================================================================== --- 0001-Limit-write-requests-to-at-most-INT_MAX.patch (rev 0) +++ 0001-Limit-write-requests-to-at-most-INT_MAX.patch 2014-02-27 15:13:52 UTC (rev 206480) @@ -0,0 +1,32 @@ +From 22531545514043e04633e1c015c7540b9de9dbe4 Mon Sep 17 00:00:00 2001 +From: Tim Kientzle <kient...@acm.org> +Date: Fri, 22 Mar 2013 23:48:41 -0700 +Subject: [PATCH] Limit write requests to at most INT_MAX. This prevents a + certain common programming error (passing -1 to write) from leading to other + problems deeper in the library. + +--- + libarchive/archive_write.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c +index eede5e0..be85621 100644 +--- a/libarchive/archive_write.c ++++ b/libarchive/archive_write.c +@@ -673,8 +673,13 @@ static ssize_t + _archive_write_data(struct archive *_a, const void *buff, size_t s) + { + struct archive_write *a = (struct archive_write *)_a; ++ const size_t max_write = INT_MAX; ++ + archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC, + ARCHIVE_STATE_DATA, "archive_write_data"); ++ /* In particular, this catches attempts to pass negative values. */ ++ if (s > max_write) ++ s = max_write; + archive_clear_error(&a->archive); + return ((a->format_write_data)(a, buff, s)); + } +-- +1.9.0 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2014-02-27 14:24:33 UTC (rev 206479) +++ PKGBUILD 2014-02-27 15:13:52 UTC (rev 206480) @@ -3,7 +3,7 @@ pkgname=libarchive pkgver=3.1.2 -pkgrel=4 +pkgrel=5 pkgdesc="library that can create and read several streaming archive formats" arch=('i686' 'x86_64') url="http://libarchive.org/" @@ -13,11 +13,11 @@ provides=('libarchive.so') source=("http://libarchive.org/downloads/$pkgname-$pkgver.tar.gz" '0001-mtree-fix-line-filename-length-calculation.patch' - https://github.com/libarchive/libarchive/commit/22531545514043e04633e1c015c7540b9de9dbe4.patch + '0001-Limit-write-requests-to-at-most-INT_MAX.patch' 'libarchive-3.1.2-acl.patch') md5sums=('efad5a503f66329bb9d2f4308b5de98a' 'fda89c145bbcd793a96b06b463ef6a72' - '6a63086b1a2e540d74ca6dc240dbd021' + '9bf80940bd3ce861137a0a8dcacf5705' 'a5c995661c62429ceff2c23ea322393b') build() { @@ -31,7 +31,7 @@ patch -Np1 -i "$srcdir/libarchive-3.1.2-acl.patch" # CVE-2013-0211 - patch -Np1 -i "$srcdir/22531545514043e04633e1c015c7540b9de9dbe4.patch" + patch -Np1 -i "$srcdir/0001-Limit-write-requests-to-at-most-INT_MAX.patch" ./configure --prefix=/usr --without-xml2 make