Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Sep 2015 20:15:24 +0000 (UTC)
From:      Christian Weisgerber <naddy@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r397203 - in head/archivers/gcpio: . files
Message-ID:  <201509172015.t8HKFOgp079735@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: naddy
Date: Thu Sep 17 20:15:23 2015
New Revision: 397203
URL: https://svnweb.freebsd.org/changeset/ports/397203

Log:
  Update to 2.12, but retain local fix for CVE-2015-1197.

Added:
  head/archivers/gcpio/files/patch-tests_symlink-long.at   (contents, props changed)
Deleted:
  head/archivers/gcpio/files/patch-doc_Makefile.in
  head/archivers/gcpio/files/patch-src_filetypes.h
  head/archivers/gcpio/files/patch-src_util.c
Modified:
  head/archivers/gcpio/Makefile
  head/archivers/gcpio/distinfo
  head/archivers/gcpio/files/patch-doc_cpio.1
  head/archivers/gcpio/files/patch-gnu_Makefile.in
  head/archivers/gcpio/files/patch-src_copyin.c
  head/archivers/gcpio/files/patch-src_extern.h
  head/archivers/gcpio/files/patch-src_global.c
  head/archivers/gcpio/files/patch-src_main.c
  head/archivers/gcpio/pkg-plist

Modified: head/archivers/gcpio/Makefile
==============================================================================
--- head/archivers/gcpio/Makefile	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/Makefile	Thu Sep 17 20:15:23 2015	(r397203)
@@ -1,8 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	cpio
-PORTVERSION=	2.11
-PORTREVISION=	3
+PORTVERSION=	2.12
 CATEGORIES=	archivers
 MASTER_SITES=	GNU
 PKGNAMEPREFIX=	g

Modified: head/archivers/gcpio/distinfo
==============================================================================
--- head/archivers/gcpio/distinfo	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/distinfo	Thu Sep 17 20:15:23 2015	(r397203)
@@ -1,2 +1,2 @@
-SHA256 (cpio-2.11.tar.bz2) = bb820bfd96e74fc6ce43104f06fe733178517e7f5d1cdee553773e8eff7d5bbd
-SIZE (cpio-2.11.tar.bz2) = 1018483
+SHA256 (cpio-2.12.tar.bz2) = 70998c5816ace8407c8b101c9ba1ffd3ebbecba1f5031046893307580ec1296e
+SIZE (cpio-2.12.tar.bz2) = 1258605

Modified: head/archivers/gcpio/files/patch-doc_cpio.1
==============================================================================
--- head/archivers/gcpio/files/patch-doc_cpio.1	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/files/patch-doc_cpio.1	Thu Sep 17 20:15:23 2015	(r397203)
@@ -1,34 +1,44 @@
---- doc/cpio.1.orig	2009-02-14 18:15:50 UTC
+--- doc/cpio.1.orig	2015-09-12 10:57:30 UTC
 +++ doc/cpio.1
-@@ -1,8 +1,8 @@
- .TH CPIO 1L \" -*- nroff -*-
+@@ -15,9 +15,9 @@
+ .\" along with GNU cpio.  If not, see <http://www.gnu.org/licenses/>.
+ .TH CPIO 1 "December 1, 2014" "CPIO" "GNU CPIO"
  .SH NAME
 -cpio \- copy files to and from archives
 +gcpio \- copy files to and from archives
  .SH SYNOPSIS
 -.B cpio
 +.B gcpio
- {\-o|\-\-create} [\-0acvABLV] [\-C bytes] [\-H format] [\-M message]
- [\-O [[user@]host:]archive] [\-F [[user@]host:]archive]
- [\-\-file=[[user@]host:]archive] [\-\-format=format] [\-\-message=message]
-@@ -11,7 +11,7 @@ cpio \- copy files to and from archives
- [\-\-force\-local] [\-\-rsh-command=command] [\-\-help] [\-\-version]
- < name-list [> archive]
+ {\fB\-o\fR|\fB\-\-create\fR} [\fB\-0acvABLV\fR] [\fB\-C\fR \fIBYTES\fR]
+ [\fB\-H\fR \fIFORMAT\fR] [\fB\-M\fR \fIMESSAGE\fR]
+ [\fB\-O\fR [[\fIUSER\fB@\fR]\fIHOST\fB:\fR]\fIARCHIVE\fR]
+@@ -31,7 +31,7 @@ cpio \- copy files to and from archives
+ [\fB\-\-force\-local\fR] [\fB\-\-rsh\-command=\fICOMMAND\fR]
+ \fB<\fR \fIname-list\fR [\fB>\fR \fIarchive\fR]
  
 -.B cpio
 +.B gcpio
- {\-i|\-\-extract} [\-bcdfmnrtsuvBSV] [\-C bytes] [\-E file] [\-H format]
- [\-M message] [\-R [user][:.][group]] [\-I [[user@]host:]archive]
- [\-F [[user@]host:]archive] [\-\-file=[[user@]host:]archive]
-@@ -22,9 +22,10 @@ cpio \- copy files to and from archives
- [\-\-owner=[user][:.][group]] [\-\-no-preserve-owner] [\-\-message=message]
- [\-\-force\-local] [\-\-no\-absolute\-filenames] [\-\-sparse]
- [\-\-only\-verify\-crc] [\-\-to\-stdout] [\-\-quiet] [\-\-rsh-command=command]
-+[\-\-extract\-over\-symlinks]
- [\-\-help] [\-\-version] [pattern...] [< archive]
+ {\fB\-i\fR|\fB\-\-extract\fR} [\fB\-bcdfmnrtsuvBSV\fR] [\fB\-C\fR \fIBYTES\fR]
+ [\fB\-E\fR \fIFILE\fR] [\fB\-H\fR \fIFORMAT\fR]
+ [\fB\-M\fR \fIMESSAGE\fR] [\fB\-R\fR [\fIUSER\fR][\fB:.\fR][\fIGROUP\fR]]
+@@ -50,9 +50,10 @@ cpio \- copy files to and from archives
+ [\fB\-\-force\-local\fR] [\fB\-\-no\-absolute\-filenames\fR] [\fB\-\-sparse\fR]
+ [\fB\-\-only\-verify\-crc\fR] [\fB\-\-to\-stdout\fR] [\fB\-\-quiet\fR]
+ [\fB\-\-rsh\-command=\fICOMMAND\fR]
++[\fB\-\-extract\-over\-symlinks\fR]
+ [\fIpattern\fR...] [\fB<\fR \fIarchive\fR]
  
 -.B cpio
 +.B gcpio
- {\-p|\-\-pass-through} [\-0adlmuvLV] [\-R [user][:.][group]]
- [\-\-null] [\-\-reset-access-time] [\-\-make-directories] [\-\-link] [\-\-quiet]
- [\-\-preserve-modification-time] [\-\-unconditional] [\-\-verbose] [\-\-dot]
+ {\fB\-p\fR|\fB\-\-pass\-through\fR} [\fB\-0adlmuvLV\fR]
+ [\fB\-R\fR [\fIUSER\fR][\fB:.\fR][\fIGROUP\fR]]
+ [\fB\-\-null\fR] [\fB\-\-reset\-access\-time\fR]
+@@ -63,7 +64,7 @@ cpio \- copy files to and from archives
+ [\fB\-\-no\-preserve\-owner\fR] [\fB\-\-sparse\fR]
+ \fIdestination-directory\fR \fB<\fR \fIname-list\fR
+ 
+-.B cpio
++.B gcpio
+ {\fB\-?\fR|\fB\-\-help\fR|\fB\-\-usage\fR|\fB\-\-version\fR}
+ .SH NOTE
+ This manpage is a short description of GNU \fBcpio\fR.  For a detailed

Modified: head/archivers/gcpio/files/patch-gnu_Makefile.in
==============================================================================
--- head/archivers/gcpio/files/patch-gnu_Makefile.in	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/files/patch-gnu_Makefile.in	Thu Sep 17 20:15:23 2015	(r397203)
@@ -1,6 +1,6 @@
---- gnu/Makefile.in.orig	2010-03-10 13:00:36 UTC
+--- gnu/Makefile.in.orig	2015-09-12 11:11:14 UTC
 +++ gnu/Makefile.in
-@@ -1720,7 +1720,7 @@ inttypes.h: inttypes.in.h $(WARN_ON_USE_
+@@ -2077,7 +2077,7 @@ inttypes.h: inttypes.in.h $(top_builddir
  # avoid installing it.
  
  all-local: charset.alias ref-add.sed ref-del.sed

Modified: head/archivers/gcpio/files/patch-src_copyin.c
==============================================================================
--- head/archivers/gcpio/files/patch-src_copyin.c	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/files/patch-src_copyin.c	Thu Sep 17 20:15:23 2015	(r397203)
@@ -1,92 +1,6 @@
---- src/copyin.c.orig	2010-02-15 10:02:23 UTC
+--- src/copyin.c.orig	2015-09-12 10:57:30 UTC
 +++ src/copyin.c
-@@ -124,10 +124,30 @@ tape_skip_padding (int in_file_des, off_
-   if (pad != 0)
-     tape_toss_input (in_file_des, pad);
- }
--
-+
-+static char *
-+get_link_name (struct cpio_file_stat *file_hdr, int in_file_des)
-+{
-+  char *link_name;
-+  
-+  if (file_hdr->c_filesize < 0 || file_hdr->c_filesize > SIZE_MAX-1)
-+    {
-+      error (0, 0, _("%s: stored filename length is out of range"),
-+	     file_hdr->c_name);
-+      link_name = NULL;
-+    }
-+  else
-+    {
-+      link_name = xmalloc (file_hdr->c_filesize + 1);
-+      tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
-+      link_name[file_hdr->c_filesize] = '\0';
-+      tape_skip_padding (in_file_des, file_hdr->c_filesize);
-+    }
-+  return link_name;
-+}
- 
- static void
--list_file(struct cpio_file_stat* file_hdr, int in_file_des)
-+list_file (struct cpio_file_stat* file_hdr, int in_file_des)
- {
-   if (verbose_flag)
-     {
-@@ -136,21 +156,16 @@ list_file(struct cpio_file_stat* file_hd
- 	{
- 	  if (archive_format != arf_tar && archive_format != arf_ustar)
- 	    {
--	      char *link_name = NULL;	/* Name of hard and symbolic links.  */
--
--	      link_name = (char *) xmalloc ((unsigned int) file_hdr->c_filesize + 1);
--	      link_name[file_hdr->c_filesize] = '\0';
--	      tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
--	      long_format (file_hdr, link_name);
--	      free (link_name);
--	      tape_skip_padding (in_file_des, file_hdr->c_filesize);
--	      return;
-+	      char *link_name = get_link_name (file_hdr, in_file_des);
-+	      if (link_name)
-+		{
-+		  long_format (file_hdr, link_name);
-+		  free (link_name);
-+		}
- 	    }
- 	  else
--	    {
--	      long_format (file_hdr, file_hdr->c_tar_linkname);
--	      return;
--	    }
-+	    long_format (file_hdr, file_hdr->c_tar_linkname);
-+	  return;
- 	}
-       else
- #endif
-@@ -640,7 +655,7 @@ copyin_device (struct cpio_file_stat* fi
- }
- 
- static void
--copyin_link(struct cpio_file_stat *file_hdr, int in_file_des)
-+copyin_link (struct cpio_file_stat *file_hdr, int in_file_des)
- {
-   char *link_name = NULL;	/* Name of hard and symbolic links.  */
-   int res;			/* Result of various function calls.  */
-@@ -650,10 +665,9 @@ copyin_link(struct cpio_file_stat *file_
- 
-   if (archive_format != arf_tar && archive_format != arf_ustar)
-     {
--      link_name = (char *) xmalloc ((unsigned int) file_hdr->c_filesize + 1);
--      link_name[file_hdr->c_filesize] = '\0';
--      tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
--      tape_skip_padding (in_file_des, file_hdr->c_filesize);
-+      link_name = get_link_name (file_hdr, in_file_des);
-+      if (!link_name)
-+	return;
-     }
-   else
-     {
-@@ -686,6 +700,51 @@ copyin_link(struct cpio_file_stat *file_
+@@ -695,6 +695,51 @@ copyin_link (struct cpio_file_stat *file
    free (link_name);
  }
  
@@ -138,27 +52,7 @@
  static void
  copyin_file (struct cpio_file_stat *file_hdr, int in_file_des)
  {
-@@ -1005,7 +1064,7 @@ read_in_header (struct cpio_file_stat *f
- 
-   file_hdr->c_tar_linkname = NULL;
- 
--  tape_buffered_read (magic.str, in_des, 6L);
-+  tape_buffered_read (magic.str, in_des, sizeof (magic.str));
-   while (1)
-     {
-       if (append_flag)
-@@ -1050,8 +1109,8 @@ read_in_header (struct cpio_file_stat *f
- 	  break;
- 	}
-       bytes_skipped++;
--      memmove (magic.str, magic.str + 1, 5);
--      tape_buffered_read (magic.str, in_des, 1L);
-+      memmove (magic.str, magic.str + 1, sizeof (magic.str) - 1);
-+      tape_buffered_read (magic.str + sizeof (magic.str) - 1, in_des, 1L);
-     }
- }
- 
-@@ -1457,6 +1516,23 @@ process_copy_in ()
+@@ -1468,6 +1513,23 @@ process_copy_in ()
  	{
  	  /* Copy the input file into the directory structure.  */
  
@@ -175,7 +69,7 @@
 +                  continue;
 +                  */
 +                  /* terminate */
-+	          error (1, 0, _("Can't write over symlinks: %s\n"), file_hdr.c_name);
++	          error (PAXEXIT_FAILURE, 0, _("Can't write over symlinks: %s\n"), file_hdr.c_name);
 +                }
 +            }
 +

Modified: head/archivers/gcpio/files/patch-src_extern.h
==============================================================================
--- head/archivers/gcpio/files/patch-src_extern.h	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/files/patch-src_extern.h	Thu Sep 17 20:15:23 2015	(r397203)
@@ -1,10 +1,10 @@
---- src/extern.h.orig	2010-02-15 10:02:23 UTC
+--- src/extern.h.orig	2015-09-12 10:57:30 UTC
 +++ src/extern.h
-@@ -95,6 +95,7 @@ extern char input_is_special;
+@@ -96,6 +96,7 @@ extern char input_is_special;
  extern char output_is_special;
  extern char input_is_seekable;
  extern char output_is_seekable;
 +extern bool extract_over_symlinks;
  extern int (*xstat) ();
  extern void (*copy_function) ();
- 
+ extern char *change_directory_option;

Modified: head/archivers/gcpio/files/patch-src_global.c
==============================================================================
--- head/archivers/gcpio/files/patch-src_global.c	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/files/patch-src_global.c	Thu Sep 17 20:15:23 2015	(r397203)
@@ -1,4 +1,4 @@
---- src/global.c.orig	2010-02-12 10:19:23 UTC
+--- src/global.c.orig	2015-09-12 10:57:30 UTC
 +++ src/global.c
 @@ -187,6 +187,9 @@ bool to_stdout_option = false;
  /* The name this program was run with.  */

Modified: head/archivers/gcpio/files/patch-src_main.c
==============================================================================
--- head/archivers/gcpio/files/patch-src_main.c	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/files/patch-src_main.c	Thu Sep 17 20:15:23 2015	(r397203)
@@ -1,16 +1,16 @@
---- src/main.c.orig	2010-02-12 11:35:09 UTC
+--- src/main.c.orig	2015-09-12 10:57:30 UTC
 +++ src/main.c
-@@ -57,7 +57,8 @@ enum cpio_options {
-   FORCE_LOCAL_OPTION,            
-   DEBUG_OPTION,                  
-   BLOCK_SIZE_OPTION,             
--  TO_STDOUT_OPTION
-+  TO_STDOUT_OPTION,
+@@ -61,7 +61,8 @@ enum cpio_options {
+   TO_STDOUT_OPTION,
+   RENUMBER_INODES_OPTION,
+   IGNORE_DEVNO_OPTION,
+-  DEVICE_INDEPENDENT_OPTION
++  DEVICE_INDEPENDENT_OPTION,
 +  EXTRACT_OVER_SYMLINKS
  };
  
  const char *program_authors[] =
-@@ -222,6 +223,8 @@ static struct argp_option options[] = {
+@@ -243,6 +244,8 @@ static struct argp_option options[] = {
     N_("Create leading directories where needed"), GRID+1 },
    {"no-preserve-owner", NO_PRESERVE_OWNER_OPTION, 0, 0,
     N_("Do not change the ownership of the files"), GRID+1 },
@@ -19,7 +19,7 @@
    {"unconditional", 'u', NULL, 0,
     N_("Replace all files unconditionally"), GRID+1 },
    {"sparse", SPARSE_OPTION, NULL, 0,
-@@ -412,6 +415,10 @@ crc newc odc bin ustar tar (all-caps als
+@@ -432,6 +435,10 @@ crc newc odc bin ustar tar (all-caps als
        no_chown_flag = true;
        break;
  
@@ -29,4 +29,4 @@
 +
      case 'o':		/* Copy-out mode.  */
        if (copy_function != 0)
- 	error (PAXEXIT_FAILURE, 0, _("Mode already defined"));
+ 	USAGE_ERROR ((0, 0, _("Mode already defined")));

Added: head/archivers/gcpio/files/patch-tests_symlink-long.at
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/archivers/gcpio/files/patch-tests_symlink-long.at	Thu Sep 17 20:15:23 2015	(r397203)
@@ -0,0 +1,15 @@
+--- tests/symlink-long.at.orig	2015-09-12 10:57:30 UTC
++++ tests/symlink-long.at
+@@ -27,9 +27,11 @@ AT_CHECK([
+ 
+ # len(dirname) > READBUFSIZE
+ dirname=
+-for i in {1..52}; do
++i=1
++while test $i -le 52; do
+     dirname="xxxxxxxxx/$dirname"
+     mkdir "$dirname"
++    i=`expr $i + 1`
+ done
+ ln -s "$dirname" x || AT_SKIP_TEST
+ 

Modified: head/archivers/gcpio/pkg-plist
==============================================================================
--- head/archivers/gcpio/pkg-plist	Thu Sep 17 18:53:18 2015	(r397202)
+++ head/archivers/gcpio/pkg-plist	Thu Sep 17 20:15:23 2015	(r397203)
@@ -7,14 +7,18 @@ man/man1/gcpio.1.gz
 %%NLS%%share/locale/fr/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/ga/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/gl/LC_MESSAGES/cpio.mo
+%%NLS%%share/locale/hr/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/hu/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/id/LC_MESSAGES/cpio.mo
+%%NLS%%share/locale/it/LC_MESSAGES/cpio.mo
+%%NLS%%share/locale/ja/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/ko/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/nl/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/pl/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/pt_BR/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/ro/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/ru/LC_MESSAGES/cpio.mo
+%%NLS%%share/locale/sr/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/sv/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/tr/LC_MESSAGES/cpio.mo
 %%NLS%%share/locale/uk/LC_MESSAGES/cpio.mo



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201509172015.t8HKFOgp079735>