aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/libarchive-fix-lzo-test-case.patch
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2014-10-11 22:49:15 -0400
committerMark H Weaver <mhw@netris.org>2014-10-11 23:21:37 -0400
commit1b7d5242c36d82242f1148cc583ea362d3e83577 (patch)
tree811341494f3aadb17d5954483c8c7ba610c8bf6b /gnu/packages/patches/libarchive-fix-lzo-test-case.patch
parent36ae58488bfeeb3bc2b314bd16ba37d06b3a13af (diff)
downloadguix-1b7d5242c36d82242f1148cc583ea362d3e83577.tar
guix-1b7d5242c36d82242f1148cc583ea362d3e83577.tar.gz
gnu: libarchive: Apply fixes including for CVE-2013-0211.
* gnu/packages/patches/libarchive-CVE-2013-0211.patch, gnu/packages/patches/libarchive-fix-lzo-test-case.patch, gnu/packages/patches/libarchive-mtree-filename-length-fix.patch: New files. * gnu-system.am (dist_patch_DATA): Add them. * gnu/packages/backup.scm (libarchive)[source]: Add patches.
Diffstat (limited to 'gnu/packages/patches/libarchive-fix-lzo-test-case.patch')
-rw-r--r--gnu/packages/patches/libarchive-fix-lzo-test-case.patch83
1 files changed, 83 insertions, 0 deletions
diff --git a/gnu/packages/patches/libarchive-fix-lzo-test-case.patch b/gnu/packages/patches/libarchive-fix-lzo-test-case.patch
new file mode 100644
index 0000000000..ffdc0db922
--- /dev/null
+++ b/gnu/packages/patches/libarchive-fix-lzo-test-case.patch
@@ -0,0 +1,83 @@
+Description: This patch fixes test cases for LZO write support in various
+ architectures, such as armhf. Writing a certain amount of files would
+ cause the LZO compressor level 9 to produce a bigger archive than the
+ default compressor level.
+Author: Andres Mejia <amejia@debian.org>
+
+--- a/libarchive/test/test_write_filter_lzop.c
++++ b/libarchive/test/test_write_filter_lzop.c
+@@ -39,7 +39,7 @@
+ size_t buffsize, datasize;
+ char path[16];
+ size_t used1, used2;
+- int i, r, use_prog = 0;
++ int i, r, use_prog = 0, filecount;
+
+ assert((a = archive_write_new()) != NULL);
+ r = archive_write_add_filter_lzop(a);
+@@ -58,9 +58,10 @@
+
+ datasize = 10000;
+ assert(NULL != (data = (char *)calloc(1, datasize)));
++ filecount = 10;
+
+ /*
+- * Write a 100 files and read them all back.
++ * Write a filecount files and read them all back.
+ */
+ assert((a = archive_write_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
+@@ -77,7 +78,7 @@
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_set_filetype(ae, AE_IFREG);
+ archive_entry_set_size(ae, datasize);
+- for (i = 0; i < 100; i++) {
++ for (i = 0; i < filecount; i++) {
+ sprintf(path, "file%03d", i);
+ archive_entry_copy_pathname(ae, path);
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae));
+@@ -97,7 +98,7 @@
+ } else {
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_memory(a, buff, used1));
+- for (i = 0; i < 100; i++) {
++ for (i = 0; i < filecount; i++) {
+ sprintf(path, "file%03d", i);
+ if (!assertEqualInt(ARCHIVE_OK,
+ archive_read_next_header(a, &ae)))
+@@ -133,7 +134,7 @@
+ archive_write_set_options(a, "lzop:compression-level=9"));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_write_open_memory(a, buff, buffsize, &used2));
+- for (i = 0; i < 100; i++) {
++ for (i = 0; i < filecount; i++) {
+ sprintf(path, "file%03d", i);
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, path);
+@@ -161,7 +162,7 @@
+ archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_memory(a, buff, used2));
+- for (i = 0; i < 100; i++) {
++ for (i = 0; i < filecount; i++) {
+ sprintf(path, "file%03d", i);
+ if (!assertEqualInt(ARCHIVE_OK,
+ archive_read_next_header(a, &ae)))
+@@ -186,7 +187,7 @@
+ archive_write_set_filter_option(a, NULL, "compression-level", "1"));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_write_open_memory(a, buff, buffsize, &used2));
+- for (i = 0; i < 100; i++) {
++ for (i = 0; i < filecount; i++) {
+ sprintf(path, "file%03d", i);
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, path);
+@@ -216,7 +217,7 @@
+ } else {
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_memory(a, buff, used2));
+- for (i = 0; i < 100; i++) {
++ for (i = 0; i < filecount; i++) {
+ sprintf(path, "file%03d", i);
+ if (!assertEqualInt(ARCHIVE_OK,
+ archive_read_next_header(a, &ae)))