bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-tar] GNU tar 1.22.91 fails with rmtlseek error (solaris only)


From: Denis Excoffier
Subject: [Bug-tar] GNU tar 1.22.91 fails with rmtlseek error (solaris only)
Date: Wed, 24 Feb 2010 21:35:01 +0100


Dear subscribers,

I use tar-1.22.91 under solaris. With some input tarfiles
(created with GNU tar or with the solaris tar),
tar -t produces the following message:

tar: rmtlseek not stopped at a record boundary
tar: Error is not recoverable: exiting now


A proposed patch is as follows:
-----------------------------------------------
In src/buffer.c, replace (around line 863):
  if (size < record_size)
with
  if (size < (off_t)record_size)
-----------------------------------------------

An example of such a `faulty' tarfile can be created
using (my personal data has been edited):

(csh, under solaris)

jupiter% tar --version | head -1
tar (GNU tar) 1.22.91
jupiter% /usr/bin/tar --version |& head -1
tar: s: unknown function modifier
jupiter% rm -rf mydir; mkdir mydir
jupiter% dd if=/dev/zero of=mydir/myfile1 bs=6000 count=1
1+0 records in
1+0 records out
jupiter% cp mydir/myfile1 mydir/myfile2
jupiter% tar cf g6000.tar mydir
jupiter% /usr/bin/tar cf s6000.tar mydir
jupiter% ls -l g6000.tar s6000.tar
-rw-r--r--   1 myname  mygroup        20480 Feb 24 14:45 g6000.tar
-rw-r--r--   1 myname  mygroup        14848 Feb 24 14:45 s6000.tar
jupiter% tar tvf g6000.tar
drwxr-xr-x myname/mygroup       0 2010-02-24 14:45 mydir/
-rw-r--r-- myname/mygroup    6000 2010-02-24 14:45 mydir/myfile1
tar: rmtlseek not stopped at a record boundary
tar: Error is not recoverable: exiting now
jupiter% tar tvf s6000.tar
drwxr-xr-x myname/mygroup       0 2010-02-24 14:45 mydir/
-rw-r--r-- myname/mygroup    6000 2010-02-24 14:45 mydir/myfile1
tar: rmtlseek not stopped at a record boundary
tar: Error is not recoverable: exiting now
jupiter% tar --no-seek -tvf g6000.tar
drwxr-xr-x myname/mygroup       0 2010-02-24 15:06 mydir/
-rw-r--r-- myname/mygroup    6000 2010-02-24 15:06 mydir/myfile1
-rw-r--r-- myname/mygroup    6000 2010-02-24 15:06 mydir/myfile2
jupiter%

Additional information:
- This occurs under Solaris 8 or Solaris 10, not on Cygwin-1.7, not
  on Darwin-9.8.0.
- This occurs under tar-1.22.91 with no specific additional option
  and under tar-1.20, tar-1.21, tar-1.22, tar-1.22.90 and tar-1.22.91
  under the -n (`--seek') option.
- With `tar -x' (instead of `tar -t') the problem is identical.
- With the option `--no-seek' (available only under tar-1.22.91), the
  problem disappears.
- If the value `bs=6000' above is changed into something below 5120 or
  something above 9216, the problem disappears.
- See patch above.


Thank you for your help.

Denis Excoffier.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]