libarchive: move patch into nixpkgs

Unfortunately, github periodically changes output even for raw diffs
(not just raw patches). I'm including the patch in nixpkgs.

I was unable to do it without hash change. Even if I added binary equal file.
This commit is contained in:
Vladimír Čunát 2014-04-21 17:56:39 +02:00
parent 3b93b7bfe6
commit f3ec500d48
2 changed files with 33 additions and 5 deletions

View file

@ -0,0 +1,30 @@
From 22531545514043e04633e1c015c7540b9de9dbe4 Mon Sep 17 00:00:00 2001
From: Tim Kientzle <kientzle@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));
}

View file

@ -12,11 +12,9 @@ stdenv.mkDerivation rec {
sha256 = "0pixqnrcf35dnqgv0lp7qlcw7k13620qkhgxr288v7p4iz6ym1zb";
};
patches = [(fetchurl {
url = "https://github.com/libarchive/libarchive/commit/22531545514043e04633e1c015c7540b9de9dbe4.diff";
sha256 = "1466ddrkdh2r8idmj3v7fk2gwnhc1kdxvyczdpnqms0qlmas6fj5";
name = "CVE-2013-0211.patch";
})];
patches = [
./CVE-2013-0211.patch # https://github.com/libarchive/libarchive/commit/22531545
];
buildInputs = [ sharutils libxml2 zlib bzip2 openssl xz ] ++
stdenv.lib.optionals stdenv.isLinux [ e2fsprogs attr acl ];