[RTEMS Project] #2413: Untar_FromMemory breaks on create directory if they exists, even on root one.
RTEMS trac
trac at rtems.org
Wed Nov 18 22:14:28 UTC 2015
#2413: Untar_FromMemory breaks on create directory if they exists, even on root
one.
---------------------+-------------------
Reporter: ppisa | Owner:
Type: defect | Status: new
Priority: normal | Milestone: 4.11
Component: General | Version: 4.11
Severity: normal | Resolution:
Keywords: |
---------------------+-------------------
Comment (by chrisj):
I do not think the patch is enough. For example on OS X:
{{{
$ rm -rf x && mkdir x && mkdir x/1 && touch x/1/1 touch x/2 && tar cf
t1.tar x
$ rm -rf x && mkdir x && mkdir x/2 && touch x/2/1 touch x/1 && tar cf
t2.tar x
$ rm -rf x && tar xf t1.tar && tar xf t2.tar
x/1: Can't remove already-existing dir
tar: Error exit delayed from previous errors.
}}}
and on FreeBSD:
{{{
$ rm -rf x && mkdir x && mkdir x/1 && touch x/1/1 touch x/2 && tar cf
t1.tar x
$ rm -rf x && mkdir x && mkdir x/2 && touch x/2/1 touch x/1 && tar cf
t2.tar x
$ rm -rf x && tar xf t1.tar && tar xf t2.tar
x/1: Can't replace existing directory with non-directory
tar: Error exit delayed from previous errors.
}}}
I think we need to add more checking and error if nodes are not the same.
I cannot see a way around this.
The current implementation is overly cautious and it has made me move away
a direction and untar a fresh image. In the end I think it is better as
stray files do not hang around. I would rather we handle the special cases
correctly or not at all.
--
Ticket URL: <http://devel.rtems.org/ticket/2413#comment:2>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list