OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 22-Oct-2006 11:48:41
Branch: HEAD Handle: 2006102210484000
Modified files:
openpkg-src/tar tar.patch tar.spec
Log:
upgrading package: tar 1.15.1 -> 1.16
Summary:
Revision Changes Path
1.14 +62 -210 openpkg-src/tar/tar.patch
1.54 +3 -3 openpkg-src/tar/tar.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/tar/tar.patch
============================================================================
$ cvs diff -u -r1.13 -r1.14 tar.patch
--- openpkg-src/tar/tar.patch 3 Oct 2006 17:56:41 -0000 1.13
+++ openpkg-src/tar/tar.patch 22 Oct 2006 09:48:40 -0000 1.14
@@ -1,7 +1,7 @@
Index: lib/argp-help.c
---- lib/argp-help.c.orig 2004-10-04 11:36:16 +0200
-+++ lib/argp-help.c 2006-10-03 19:53:59 +0200
-@@ -532,8 +532,7 @@
+--- lib/argp-help.c.orig 2006-09-12 10:59:04 +0200
++++ lib/argp-help.c 2006-10-22 11:35:12 +0200
+@@ -567,8 +567,7 @@
return val;
}
@@ -11,7 +11,7 @@
hol_entry_long_iterate (const struct hol_entry *entry,
int (*func)(const struct argp_option *opt,
const struct argp_option *real,
-@@ -557,7 +556,7 @@
+@@ -592,7 +591,7 @@
}
/* Iterator that returns true for the first short option. */
@@ -20,109 +20,80 @@
until_short (const struct argp_option *opt, const struct argp_option *real,
const char *domain, void *cookie)
{
-Index: src/incremen.c
---- src/incremen.c.orig 2004-09-06 13:30:42 +0200
-+++ src/incremen.c 2004-12-20 19:55:06 +0100
-@@ -133,6 +133,8 @@
- if (! dirp)
- {
- savedir_error (dir_name);
-+ errno = 1;
-+ return;
- }
- errno = 0;
-
-Index: src/utf8.c
---- src/utf8.c.orig 2004-10-25 16:14:53 +0200
-+++ src/utf8.c 2004-12-20 19:54:25 +0100
-@@ -22,6 +22,9 @@
- #include "common.h"
- #ifdef HAVE_ICONV_H
- # include <iconv.h>
-+#else
-+# define iconv_t void *
-+# define ICONV_CONST const
- #endif
-
- #ifndef ICONV_CONST
-Index: src/xheader.c
---- src/xheader.c.orig 2004-09-06 13:31:14 +0200
-+++ src/xheader.c 2004-12-20 19:54:25 +0100
-@@ -23,6 +23,7 @@
- #include <quotearg.h>
- #include <stpcpy.h>
- #include <xstrtol.h>
-+#include <stpcpy.h>
-
- #include "common.h"
-
Index: rmt/rmt.c
---- rmt/rmt.c.orig 2004-09-06 15:49:41 +0200
-+++ rmt/rmt.c 2004-12-20 20:01:28 +0100
-@@ -38,6 +38,7 @@
-
+--- rmt/rmt.c.orig 2006-09-27 10:54:46 +0200
++++ rmt/rmt.c 2006-10-22 11:35:12 +0200
+@@ -43,6 +43,7 @@
+ #include <obstack.h>
#include <getopt.h>
#include <sys/socket.h>
+#include <locale.h>
#ifndef EXIT_FAILURE
# define EXIT_FAILURE 1
+Index: src/compare.c
+--- src/compare.c.orig 2006-03-20 10:23:29 +0100
++++ src/compare.c 2006-10-22 11:36:29 +0200
+@@ -295,7 +295,7 @@
+ size_t len = strlen (current_stat_info.link_name);
+ char *linkbuf = alloca (len + 1);
+
+- int status = readlink (current_stat_info.file_name, linkbuf, len + 1);
++ int status = readlink (current_stat_info.file_name, linkbuf, len);
+
+ if (status < 0)
+ {
+Index: src/create.c
+--- src/create.c.orig 2006-10-16 08:33:55 +0200
++++ src/create.c 2006-10-22 11:36:18 +0200
+@@ -1600,7 +1600,7 @@
+ if (linklen != st->stat.st_size || linklen + 1 == 0)
+ xalloc_die ();
+ buffer = (char *) alloca (linklen + 1);
+- size = readlink (p, buffer, linklen + 1);
++ size = readlink (p, buffer, linklen);
+ if (size < 0)
+ {
+ readlink_diag (p);
+Index: src/incremen.c
+--- src/incremen.c.orig 2006-09-08 18:42:18 +0200
++++ src/incremen.c 2006-10-22 11:43:46 +0200
+@@ -479,6 +479,7 @@
+ children = CHANGED_CHILDREN;
+ but changed to: */
+ free (name_buffer);
++ if (dirp)
+ free (dirp);
+ return NULL;
+ }
Index: src/tar.c
---- src/tar.c.orig 2004-12-21 15:11:26 +0100
-+++ src/tar.c 2005-01-31 21:34:57 +0100
+--- src/tar.c.orig 2006-10-17 10:11:31 +0200
++++ src/tar.c 2006-10-22 11:35:12 +0200
@@ -20,6 +20,7 @@
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
#include <system.h>
+#include <locale.h>
#include <fnmatch.h>
- #include <argp.h>
-@@ -617,9 +618,9 @@
-
- switch (key)
- {
-- case 1:
-+ case ARGP_KEY_ARG:
- /* File name or non-parsed option, because of ARGP_IN_ORDER */
-- name_add (optarg);
-+ name_add (arg);
- args->input_files++;
- break;
-
-Index: src/compare.c
---- src/compare.c.orig 2004-09-06 13:30:29 +0200
-+++ src/compare.c 2005-01-31 21:34:57 +0100
-@@ -327,7 +327,7 @@
- size_t len = strlen (current_stat_info.link_name);
- char *linkbuf = alloca (len + 1);
-
-- status = readlink (current_stat_info.file_name, linkbuf, len + 1);
-+ status = readlink (current_stat_info.file_name, linkbuf, len);
+ #include <getline.h>
+Index: src/utf8.c
+--- src/utf8.c.orig 2005-05-18 14:23:49 +0200
++++ src/utf8.c 2006-10-22 11:35:12 +0200
+@@ -22,6 +22,9 @@
+ #include "common.h"
+ #ifdef HAVE_ICONV_H
+ # include <iconv.h>
++#else
++# define iconv_t void *
++# define ICONV_CONST const
+ #endif
- if (status < 0)
- {
-Index: src/create.c
---- src/create.c.orig 2004-10-04 11:21:31 +0200
-+++ src/create.c 2005-01-31 21:34:57 +0100
-@@ -1482,7 +1482,7 @@
- if (linklen != st->stat.st_size || linklen + 1 == 0)
- xalloc_die ();
- buffer = (char *) alloca (linklen + 1);
-- size = readlink (p, buffer, linklen + 1);
-+ size = readlink (p, buffer, linklen);
- if (size < 0)
- {
- readlink_diag (p);
-
------------------------------------------------------------------------------
-
-Security Fixes (CVE-2006-0300)
-
+ #ifndef ICONV_CONST
Index: src/xheader.c
---- src/xheader.c.orig 2006-06-10 08:58:04 +0200
-+++ src/xheader.c 2006-06-10 09:01:31 +0200
-@@ -33,6 +33,10 @@
+--- src/xheader.c.orig 2006-10-22 11:35:12 +0200
++++ src/xheader.c 2006-10-22 11:40:55 +0200
+@@ -28,6 +28,10 @@
#include <fnmatch.h>
@@ -133,122 +104,3 @@
static bool xheader_protected_pattern_p (char const *pattern);
static bool xheader_protected_keyword_p (char const *keyword);
static void xheader_set_single_keyword (char *) __attribute__ ((noreturn));
-@@ -784,6 +788,32 @@
- xheader_print (xhdr, keyword, sbuf);
- }
-
-+static bool
-+decode_num (uintmax_t *num, char const *arg, uintmax_t maxval,
-+ char const *keyword)
-+{
-+ uintmax_t u;
-+ char *arg_lim;
-+
-+ if (! (ISDIGIT (*arg)
-+ && (errno = 0, xstrtoumax (arg, &arg_lim, 10, &u, ""), !*arg_lim)))
-+ {
-+ ERROR ((0, 0, _("Malformed extended header: invalid %s=%s"),
-+ keyword, arg));
-+ return false;
-+ }
-+
-+ if (! (u <= maxval && errno != ERANGE))
-+ {
-+ ERROR ((0, 0, _("Extended header %s=%s is out of range"),
-+ keyword, arg));
-+ return false;
-+ }
-+
-+ *num = u;
-+ return true;
-+}
-+
- static void
- dummy_coder (struct tar_stat_info const *st __attribute__ ((unused)),
- char const *keyword __attribute__ ((unused)),
-@@ -822,7 +852,7 @@
- gid_decoder (struct tar_stat_info *st, char const *arg)
- {
- uintmax_t u;
-- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK)
-+ if (decode_num (&u, arg, TYPE_MAXIMUM (gid_t), "gid"))
- st->stat.st_gid = u;
- }
-
-@@ -904,7 +934,7 @@
- size_decoder (struct tar_stat_info *st, char const *arg)
- {
- uintmax_t u;
-- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK)
-+ if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), "size"))
- st->archive_file_size = st->stat.st_size = u;
- }
-
-@@ -919,7 +949,7 @@
- uid_decoder (struct tar_stat_info *st, char const *arg)
- {
- uintmax_t u;
-- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK)
-+ if (decode_num (&u, arg, TYPE_MAXIMUM (uid_t), "uid"))
- st->stat.st_uid = u;
- }
-
-@@ -947,7 +977,7 @@
- sparse_size_decoder (struct tar_stat_info *st, char const *arg)
- {
- uintmax_t u;
-- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK)
-+ if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), "GNU.sparse.size"))
- st->stat.st_size = u;
- }
-
-@@ -963,10 +993,10 @@
- sparse_numblocks_decoder (struct tar_stat_info *st, char const *arg)
- {
- uintmax_t u;
-- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK)
-+ if (decode_num (&u, arg, SIZE_MAX, "GNU.sparse.numblocks"))
- {
- st->sparse_map_size = u;
-- st->sparse_map = calloc(st->sparse_map_size,
sizeof(st->sparse_map[0]));
-+ st->sparse_map = xcalloc (u, sizeof st->sparse_map[0]);
- st->sparse_map_avail = 0;
- }
- }
-@@ -983,8 +1013,14 @@
- sparse_offset_decoder (struct tar_stat_info *st, char const *arg)
- {
- uintmax_t u;
-- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK)
-+ if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), "GNU.sparse.offset"))
-+ {
-+ if (st->sparse_map_avail < st->sparse_map_size)
- st->sparse_map[st->sparse_map_avail].offset = u;
-+ else
-+ ERROR ((0, 0, _("Malformed extended header: excess %s=%s"),
-+ "GNU.sparse.offset", arg));
-+ }
- }
-
- static void
-@@ -999,15 +1035,13 @@
- sparse_numbytes_decoder (struct tar_stat_info *st, char const *arg)
- {
- uintmax_t u;
-- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK)
-+ if (decode_num (&u, arg, SIZE_MAX, "GNU.sparse.numbytes"))
- {
- if (st->sparse_map_avail == st->sparse_map_size)
-- {
-- st->sparse_map_size *= 2;
-- st->sparse_map = xrealloc (st->sparse_map,
-- st->sparse_map_size
-- * sizeof st->sparse_map[0]);
-- }
-+ st->sparse_map = x2nrealloc (st->sparse_map,
-+ &st->sparse_map_size,
-+ sizeof st->sparse_map[0]);
-+
- st->sparse_map[st->sparse_map_avail++].numbytes = u;
- }
- }
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/tar/tar.spec
============================================================================
$ cvs diff -u -r1.53 -r1.54 tar.spec
--- openpkg-src/tar/tar.spec 13 Oct 2006 17:34:44 -0000 1.53
+++ openpkg-src/tar/tar.spec 22 Oct 2006 09:48:40 -0000 1.54
@@ -24,7 +24,7 @@
# package information
Name: tar
-Summary: Un-/Packing of TAR Archive Files
+Summary: Management of TAR Archive Format Files
URL: http://www.gnu.org/software/tar/
Vendor: Free Software Foundation
Packager: OpenPKG Foundation e.V.
@@ -32,8 +32,8 @@
Class: CORE
Group: Archiver
License: GPL
-Version: 1.15.1
-Release: 20061013
+Version: 1.16
+Release: 20061022
# list of sources
Source0: ftp://ftp.gnu.org/gnu/tar/tar-%{version}.tar.gz
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]