Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package tar for openSUSE:Factory checked in 
at 2026-08-01 18:26:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tar (Old)
 and      /work/SRC/openSUSE:Factory/.tar.new.16738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tar"

Sat Aug  1 18:26:56 2026 rev:92 rq:1368079 version:1.35

Changes:
--------
--- /work/SRC/openSUSE:Factory/tar/tar.changes  2026-07-20 09:56:49.619056204 
+0200
+++ /work/SRC/openSUSE:Factory/.tar.new.16738/tar.changes       2026-08-01 
18:27:04.635191359 +0200
@@ -1,0 +2,7 @@
+Thu Jul 23 14:35:33 UTC 2026 - Antonio Teixeira <[email protected]>
+
+- Add tar-assume-dir-size-0.patch
+  * Fixes tar incorrectly skipping members in certain archives containing
+    dirs with non-zero sizes (bsc#1271272)
+
+-------------------------------------------------------------------

New:
----
  tar-assume-dir-size-0.patch

----------(New B)----------
  New:
- Add tar-assume-dir-size-0.patch
  * Fixes tar incorrectly skipping members in certain archives containing
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ tar.spec ++++++
--- /var/tmp/diff_new_pack.EDiJjQ/_old  2026-08-01 18:27:05.507221151 +0200
+++ /var/tmp/diff_new_pack.EDiJjQ/_new  2026-08-01 18:27:05.511221288 +0200
@@ -68,6 +68,9 @@
 Patch23:        openat2-fix-dotlike-failure.patch
 # PATCH-FIX-UPSTREAM 
https://cgit.git.savannah.gnu.org/cgit/tar.git/patch/?id=08c3fc2e9337094aff01a511170fd35fdb8f1ee3
 Patch24:        tar-acl_-prefix.patch
+# PATCH-FIX-UPSTREAM 
https://cgit.git.savannah.gnu.org/cgit/tar.git/patch/?id=19a3a73e8c48bd3c59cbea9b5ed6780fc6836c6d
+# Fix for bsc#1271272
+Patch25:        tar-assume-dir-size-0.patch
 BuildRequires:  automake >= 1.15
 BuildRequires:  libacl-devel
 BuildRequires:  libselinux-devel


++++++ tar-assume-dir-size-0.patch ++++++
commit 19a3a73e8c48bd3c59cbea9b5ed6780fc6836c6d
Author: Sergey Poznyakoff <[email protected]>
Date:   Thu Jul 23 10:42:56 2026 +0300

    Assume directory members have size=0.
    
    Since commit b8d8a61b, tar started honoring size field in headers
    of the directory archive members when listing and extracting. That
    doesn't seem right: although GNU tar always stores 0 for such members,
    there are other tar implementation that don't. As a result, GNU tar
    skips the actual directory contents when listing or extracting archives
    created by such implementations.
    
    This commit fixes that by assuming that size is 0 for directory archive
    members.
    
    * src/list.c (member_is_dir): Restore function.
    (skim_member): Don't apply skim_file to directory members.
    * tests/skipdir.at: Fix expectations.

diff --git a/src/list.c b/src/list.c
index cf7b41c4..1f441364 100644
--- a/src/list.c
+++ b/src/list.c
@@ -1437,6 +1437,24 @@ skip_member (void)
   skim_member (false);
 }
 
+static bool
+member_is_dir (struct tar_stat_info *info, char typeflag)
+{
+  switch (typeflag)
+    {
+    case AREGTYPE:
+    case REGTYPE:
+    case CONTTYPE:
+      return info->had_trailing_slash;
+
+    case DIRTYPE:
+      return true;
+
+    default:
+      return false;
+    }
+}
+
 /* Skip the current member in the archive.
    If MUST_COPY, always copy instead of skipping.  */
 void
@@ -1450,7 +1468,8 @@ skim_member (bool must_copy)
 
       if (current_stat_info.is_sparse)
        sparse_skim_file (&current_stat_info, must_copy);
-      else
+      else if (!member_is_dir (&current_stat_info,
+                              current_header->header.typeflag))
        skim_file (current_stat_info.stat.st_size, must_copy);
 
       mv_end ();

Reply via email to