Package: tar
Version: 1.16-1

Hi!

When tar fails to create a file during extraction (eg. because the
target filesystem cannot handle the filename (wildcard characters in
VFAT filenames)), it may happen that tar does not extract _anything_
after a single open() failed:

bixie:/home/jbglaw/tar-test# ls -l test/ mnt/
mnt/:
total 0

test/:
total 4
-rw-r--r-- 1 root root 1 2006-12-04 17:39 invalid [ ? ] file.txt
-rw-r--r-- 1 root root 0 2006-12-04 17:34 normalfile.txt
bixie:/home/jbglaw/tar-test# mount |grep vfat
/home/jbglaw/tar-test/vfat-image on /home/jbglaw/tar-test/mnt type vfat 
(rw,loop=/dev/loop0)
bixie:/home/jbglaw/tar-test# ( cd test/ && tar cf - . ) | ( cd mnt && tar xf -;)
tar: ./invalid [ ? ] file.txt: Cannot open: Invalid argument
tar: Error exit delayed from previous errors
bixie:/home/jbglaw/tar-test# ls -l mnt/
total 0


This patch fixes the issue:

--- tar-1.16/src/extract.c~     2006-11-28 23:21:47.000000000 +0100
+++ tar-1.16/src/extract.c      2006-11-28 23:22:07.000000000 +0100
@@ -751,6 +751,7 @@
       if (fd < 0)
        {
          open_error (file_name);
+         skip_member ();
          return 1;
        }
     }



I've also submitted this patch on the bug-tar@gnu.org mailing list,
but it hasn't been accepted yet because the maintainer failed to
reproduce the issue on the first try.

MfG, JBG

-- 
      Jan-Benedict Glaw      [EMAIL PROTECTED]              +49-172-7608481
Signature of:                http://catb.org/~esr/faqs/smart-questions.html
the second  :

Attachment: signature.asc
Description: Digital signature

Reply via email to