Package: tar
Version: 1.13.93-4
Severity: normal

Abstract:
=========

If the path to a file is longer than 99 characters, then

  * tar 1.13.93-4 (Sarge):
    a) silently cuts all the path components and adds the file to the
       top of the tarball
    b) prints *no* error message
    c) exits with error code 0, i.e. "successful"
  * tar 1.14-2 (Sid):
    a) creates the archive without the file
    b) prints an error message expressing the cause of the problem
    c) exits with error code != 0, i.e. "error"


Details:
========

I noticed this bug while creating a source tarball via "make dist" on an
automake-based package using stock automake1.9 and tar from Sarge.

The file in question should have been

    
libexif-testsuite-0.6.13/src/libgphoto2/libgphoto2_port/libgphoto2_port/gphoto2-port-portability-os2.h

in the tarball would always be packaged as

    gphoto2-port-portability-os2.h

Fortunately, I found the automake bug #302682 which talks about newer
tar supporting more tar formats:

   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=302682

This prompted me to test the newer tar version 1.14-2 from Sid. The
results point to a definite problem in tar:

tardir=libexif-testsuite-0.6.13 && /bin/sh 
/home/uli/src/photo/libexif-testsuite/missing --run tar chof - "$tardir" | 
GZIP=--best gzip -c >libexif-testsuite-0.6.13.tar.gz
tar: 
libexif-testsuite-0.6.13/src/libgphoto2/libgphoto2_port/libgphoto2_port/gphoto2-port-portability-o2.h:
 file name is too long (max 99); not dumped
tar: Error exit delayed from previous errors
tardir=libexif-testsuite-0.6.13 && /bin/sh 
/home/uli/src/photo/libexif-testsuite/missing --run tar chof - "$tardir" | 
bzip2 -9 -c >libexif-testsuite-0.6.13.tar.bz2 tar: 
libexif-testsuite-0.6.13/src/libgphoto2/libgphoto2_port/libgphoto2_port/gphoto2-port-portability-o2.h:
 file name is too long (max 99); not dumped


Conclusion:
===========

I can understand if the file format only allows 99 characters for the
path. However, tar 1.13.93 handles that in a completely wrong way.

Even tar 1.13.93 should definitely fail with an error message instead
of just silently moving the offending file around and pretend nothing
bad ever happened.


-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (990, 'testing'), (800, 'unstable'), (100, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.11-rc2-vs1.9.4-rc3-ndim-1
Locale: LANG=C, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)

Versions of packages tar depends on:
ii  libc6                       2.3.2.ds1-20 GNU C Library: Shared libraries an

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to