[arch-commits] Commit in tar/trunk (01-When-extracting-skip-.-members.patch PKGBUILD)

Sébastien Luttringer seblu at archlinux.org
Wed Nov 2 19:50:32 UTC 2016


    Date: Wednesday, November 2, 2016 @ 19:50:31
  Author: seblu
Revision: 279775

Work on FS#51563

Added:
  tar/trunk/01-When-extracting-skip-.-members.patch
Modified:
  tar/trunk/PKGBUILD

-----------------------------------------+
 01-When-extracting-skip-.-members.patch |   25 +++++++++++++++++++++++++
 PKGBUILD                                |   23 +++++++++++++++++++----
 2 files changed, 44 insertions(+), 4 deletions(-)

Added: 01-When-extracting-skip-.-members.patch
===================================================================
--- 01-When-extracting-skip-.-members.patch	                        (rev 0)
+++ 01-When-extracting-skip-.-members.patch	2016-11-02 19:50:31 UTC (rev 279775)
@@ -0,0 +1,25 @@
+diff --git a/src/extract.c b/src/extract.c
+index f982433..7904148 100644
+--- a/src/extract.c
++++ b/src/extract.c
+@@ -1629,12 +1629,20 @@ extract_archive (void)
+ {
+   char typeflag;
+   tar_extractor_t fun;
++  bool skip_dotdot_name;
+ 
+   fatal_exit_hook = extract_finish;
+ 
+   set_next_block_after (current_header);
+ 
++  skip_dotdot_name = (!absolute_names_option
++		      && contains_dot_dot (current_stat_info.orig_file_name));
++  if (skip_dotdot_name)
++    ERROR ((0, 0, _("%s: Member name contains '..'"),
++	    quotearg_colon (current_stat_info.orig_file_name)));
++
+   if (!current_stat_info.file_name[0]
++      || skip_dotdot_name
+       || (interactive_option
+ 	  && !confirm ("extract", current_stat_info.file_name)))
+     {

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2016-11-02 19:37:47 UTC (rev 279774)
+++ PKGBUILD	2016-11-02 19:50:31 UTC (rev 279775)
@@ -5,19 +5,34 @@
 
 pkgname=tar
 pkgver=1.29
-pkgrel=1
+pkgrel=2
 pkgdesc='Utility used to store, backup, and transport files'
 arch=('i686' 'x86_64')
-url='http://www.gnu.org/software/tar/tar.html'
+url='https://www.gnu.org/software/tar/tar.html'
 license=('GPL3')
 groups=('base')
 depends=('glibc' 'acl' 'attr')
 options=('!emptydirs')
 validpgpkeys=('325F650C4C2B6AD58807327A3602B07F55D0C732') # Sergey Poznyakoff
-source=("ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig})
+source=("https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig}
+        '01-When-extracting-skip-.-members.patch')
 md5sums=('a1802fec550baaeecff6c381629653ef'
-         'SKIP')
+         'SKIP'
+         '21f9b5b3642b5476bd972189c33d06ca')
 
+prepare() {
+  cd $pkgname-$pkgver
+  # apply patch from the source array (should be a pacman feature)
+  local filename
+  for filename in "${source[@]}"; do
+    if [[ "$filename" =~ \.patch$ ]]; then
+      msg2 "Applying patch $filename"
+      patch -p1 -N -i "$srcdir/$filename"
+    fi
+  done
+  :
+}
+
 build() {
   cd $pkgname-$pkgver
   ./configure --prefix=/usr --libexecdir=/usr/lib/tar



More information about the arch-commits mailing list