mirror of
https://git.savannah.gnu.org/git/tar.git
synced 2026-04-25 19:10:46 +00:00
Prefer O_PATH to O_SEARCH on Linux kernels
* src/tar.c (decode_options): Prefer O_PATH to an O_SEARCH that is actually O_RDONLY.
This commit is contained in:
5
NEWS
5
NEWS
@@ -1,4 +1,4 @@
|
||||
GNU tar NEWS - User visible changes. 2025-10-19
|
||||
GNU tar NEWS - User visible changes. 2025-11-09
|
||||
Please send GNU tar bug reports to <bug-tar@gnu.org>
|
||||
|
||||
version 1.35.90 (git)
|
||||
@@ -49,6 +49,9 @@ option.
|
||||
not even temporarily. This matches the documentation better and avoids
|
||||
some permissions glitches.
|
||||
|
||||
** tar no longer fails merely if an extraction directory is unreadable
|
||||
on Linux kernels.
|
||||
|
||||
** tar now works better in strict debugging environments that do not
|
||||
allow pointer arithmetic to escape from a sub-element of an array.
|
||||
|
||||
|
||||
@@ -2701,7 +2701,12 @@ decode_options (int argc, char **argv)
|
||||
| (dereference_option ? 0 : O_NOFOLLOW)
|
||||
| (atime_preserve_option == system_atime_preserve ? O_NOATIME : 0));
|
||||
open_read_flags = O_RDONLY | base_open_flags;
|
||||
open_searchdir_flags = O_SEARCH | O_DIRECTORY | base_open_flags;
|
||||
#if defined O_PATH && O_SEARCH == O_RDONLY
|
||||
int open_search_flag = O_PATH;
|
||||
#else
|
||||
int open_search_flag = O_SEARCH;
|
||||
#endif
|
||||
open_searchdir_flags = open_search_flag | O_DIRECTORY | base_open_flags;
|
||||
}
|
||||
fstatat_flags = dereference_option ? 0 : AT_SYMLINK_NOFOLLOW;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user