summary refs log tree commit diff
path: root/pkgs/tools/archivers/cpio
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2006-11-27 00:34:05 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2006-11-27 00:34:05 +0000
commiteed02cb58f81bacc087c711886e827f0b2fa34e6 (patch)
tree947b4a304b91ceb65814331a1d8383eee18561e4 /pkgs/tools/archivers/cpio
parent8c4574571dd7cdc61c7dcdd9ebef6597009fb155 (diff)
downloadnixpkgs-eed02cb58f81bacc087c711886e827f0b2fa34e6.tar
nixpkgs-eed02cb58f81bacc087c711886e827f0b2fa34e6.tar.gz
nixpkgs-eed02cb58f81bacc087c711886e827f0b2fa34e6.tar.bz2
nixpkgs-eed02cb58f81bacc087c711886e827f0b2fa34e6.tar.lz
nixpkgs-eed02cb58f81bacc087c711886e827f0b2fa34e6.tar.xz
nixpkgs-eed02cb58f81bacc087c711886e827f0b2fa34e6.tar.zst
nixpkgs-eed02cb58f81bacc087c711886e827f0b2fa34e6.zip
* Fix corrupt archives in cpio 2.7 when dealing with symlinks.
svn path=/nixpkgs/trunk/; revision=7143
Diffstat (limited to 'pkgs/tools/archivers/cpio')
-rw-r--r--pkgs/tools/archivers/cpio/default.nix1
-rw-r--r--pkgs/tools/archivers/cpio/symlink.patch13
2 files changed, 14 insertions, 0 deletions
diff --git a/pkgs/tools/archivers/cpio/default.nix b/pkgs/tools/archivers/cpio/default.nix
index 69e5b176879..deed73bc031 100644
--- a/pkgs/tools/archivers/cpio/default.nix
+++ b/pkgs/tools/archivers/cpio/default.nix
@@ -6,4 +6,5 @@ stdenv.mkDerivation {
     url = http://ftp.gnu.org/gnu/cpio/cpio-2.7.tar.bz2;
     md5 = "69ad6cb3d288aafe5f969f68d9fd0fb7";
   };
+  patches = [./symlink.patch];
 }
diff --git a/pkgs/tools/archivers/cpio/symlink.patch b/pkgs/tools/archivers/cpio/symlink.patch
new file mode 100644
index 00000000000..89f82daa522
--- /dev/null
+++ b/pkgs/tools/archivers/cpio/symlink.patch
@@ -0,0 +1,13 @@
+http://lists.gnu.org/archive/html/bug-cpio/2006-11/msg00003.html
+
+diff -Ndpru cpio-2.7/src/copyout.c cpio-2.7.fixed/src/copyout.c
+--- cpio-2.7/src/copyout.c      2006-09-27 02:19:44.000000000 -0600
++++ cpio-2.7.fixed/src/copyout.c        2006-11-12 18:58:25.000000000 -0700
+@@ -806,6 +806,7 @@ process_copy_out ()
+		    free (link_name);
+		    continue;
+		  }
++               link_name[link_size] = '\0';
+		cpio_safer_name_suffix (link_name, false,
+					!no_abs_paths_flag, true);
+		link_size = strlen (link_name);