[PATCH] untar: Make behavior similar to GNU or BSD tar
Chris Johns
chrisj at rtems.org
Tue Dec 7 04:10:54 UTC 2021
On 3/12/21 11:50 pm, Christian Mauderer wrote:
> RTEMS untar implementation had problems with overwriting or integrating
> archives into existing directory structures. This patch adapts the
> behavior to mimic that of a GNU tar or BSD tar and extends the tar01
> test to check for the behavior. That is:
>
> * If a directory structure exists, the files from the archive will be
> integrated. Existing files are overwritten.
What currently happens?
> * If a file exists and the archive contains a directory with the same
> name, the file is removed and a directory is created. In the above
> example: if l1/l2 is a file it will be overwritten with a new
> directory.
OK
> * If a directory exists and the archive contains a file with the same
> name, the directory will be replaced if it is empty. If it contains
> files, the result is an error.
>
> * An archive also can contain only a file without the parent
> directories. If in that case one of the parent directories exists as a
> file extracting the archive results in an error. In the example: if
> l1/l2 is a file and the archive doesn't contain the directories but
> only the file l1/l2/x.txt that would be an error.
>
> * In case of an error, it is possible that the archive has been
> partially extracted.
And what was there is not recoverable.
Functionally this is not a big change and so I am left wondering why the
original developer(s) did not do this?
I think the changes make sense and I do not think it will break any applications
I know of that use this code.
Chris
More information about the devel
mailing list