Files
tar/tests/xattr08.at
Paul Eggert 0b74885e81 Fix bug with -x --xattr read-only files
Problem reported by Kevin Raymond in:
https://bugzilla.redhat.com/show_bug.cgi?id=1886540
* src/extract.c (open_output_file): If we already created the
empty file, do not open with O_EXCL, or with O_CREAT or O_TRUNC
for that matter.  Instead, use only O_NOFOLLOW to avoid some
races.  When estimating current mode, use openflag & O_EXCL rather
than overwriting_old_files.
(extract_file): Also invert S_IWUSR if it’s not set.
* tests/xattr08.at: New test.
* tests/Makefile.am, tests/testsuite.at: Add it.
2022-08-26 16:39:16 -05:00

42 lines
1.2 KiB
Plaintext

# Process this file with autom4te to create testsuite. -*- Autotest -*-
#
# Test suite for GNU tar.
# Copyright 2022 Free Software Foundation, Inc.
# This file is part of GNU tar.
# GNU tar is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
# GNU tar is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Test description:
# Test read-only files can be extracted with --xattr.
# Per report:
# https://lists.gnu.org/r/bug-tar/2020-10/msg00001.html
AT_SETUP([xattrs: xattrs and read-only files])
AT_KEYWORDS([xattrs xattr08])
AT_TAR_CHECK([
AT_XATTRS_PREREQ
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
])
AT_CLEANUP