From owner-svn-ports-all@freebsd.org Thu Sep 17 20:15:27 2015 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ED05E9CE3E3; Thu, 17 Sep 2015 20:15:26 +0000 (UTC) (envelope-from naddy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7AFF1789; Thu, 17 Sep 2015 20:15:26 +0000 (UTC) (envelope-from naddy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t8HKFQpE079749; Thu, 17 Sep 2015 20:15:26 GMT (envelope-from naddy@FreeBSD.org) Received: (from naddy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t8HKFOgp079735; Thu, 17 Sep 2015 20:15:24 GMT (envelope-from naddy@FreeBSD.org) Message-Id: <201509172015.t8HKFOgp079735@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: naddy set sender to naddy@FreeBSD.org using -f From: Christian Weisgerber Date: Thu, 17 Sep 2015 20:15:24 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r397203 - in head/archivers/gcpio: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Sep 2015 20:15:27 -0000 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 . + .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