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                     openpkg-cvs@openpkg.org

Reply via email to