Files
tar/tests
Paul Eggert 14efeb9f95 tar: --dereference consistency
This closes another race condition, that occurs when overwriting a
symlink with a regular file.
* NEWS (--dereference consistency): New section.
* doc/tar.texi (Option Summary): Describe new --deference behavior.
(dereference): Likewise.  Remove discussion that I didn't follow,
even before --dereference was changed.
* src/common.h (deref_stat, set_file_atime): Adjust signatures.
* src/compare.c (diff_file, diff_multivol): Respect open_read_flags
instead of rolling our own flags.  This implements the new behavior
for --dereference.
(diff_file, diff_dumpdir): Likewise, for fstatat_flags.
* src/create.c: Adjust to set_file_atime signature change.
* src/extract.c (mark_after_links, file_newer_p, extract_dir):
Likewise.
* src/incremen.c (try_purge_directory): Likewise.
* src/misc.c (maybe_backup_file): Likewise.
* src/extract.c (file_newer_p): New arg STP.  All callers changed.
(maybe_recoverable): New arg REGULAR.  All callers changed.
Handle the case of overwriting a symlink with a regular file,
when --overwrite is specified but --dereference is not.
(open_output_file): Add O_CLOEXEC, O_NOCTTY, O_NONBLOCK for
consistency with file creation.  Add O_NOFOLLOW if
overwriting_old_files && ! dereference_option.
* src/incremen.c (update_parent_directory): Use fstat, not fstatat;
there's less to go wrong.
* src/misc.c (deref_stat): Remove DEREF arg.  All callers changed.
Instead, use fstatat_flags.
(set_file_atime): Remove ATFLAG arg.  All callers changed.
Instead, use fstatat_flags.
* src/names.c, src/update.c: Adjust to deref_stat signature change.
* src/tar.c (get_date_or_file): Use stat, not deref_stat, as this
is not a file to be archived.
* tests/Makefile.am (TESTSUITE_AT): Add extrac13.at.
* tests/extrac13.at: New file.
* tests/testsuite.at: Include it.
2010-09-23 19:41:47 -07:00
..
2009-03-07 16:30:44 +02:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2010-03-02 18:39:40 +02:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-08-27 20:12:14 +03:00
2010-09-23 19:41:47 -07:00
2010-04-01 00:03:51 +03:00
2008-06-26 06:32:25 +00:00
2009-08-07 14:52:55 +03:00
2007-06-27 13:30:12 +00:00
2010-08-24 08:18:37 -07:00
2008-06-26 06:32:25 +00:00
2008-06-26 06:32:25 +00:00
2007-06-27 13:30:12 +00:00
2010-09-23 19:41:47 -07:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2009-10-14 17:55:15 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2007-10-04 07:16:39 +00:00
2010-09-23 19:41:47 -07:00
2009-10-14 23:26:52 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00