fix find not obeying option -ignore_readdir_race in symlink_loop

Resolves: #2232278
This commit is contained in:
Lukáš Zaoral 2023-08-16 11:28:30 +02:00
parent c0f2c7f465
commit 3a8b2da26b
No known key found for this signature in database
GPG Key ID: 39157506DD67752D
2 changed files with 24 additions and 1 deletions

View File

@ -0,0 +1,17 @@
# cherry picked from https://savannah.gnu.org/bugs/?45930
diff --git a/find/ftsfind.c b/find/ftsfind.c
index 0d96c4ca..6aeac28c 100644
--- a/find/ftsfind.c
+++ b/find/ftsfind.c
@@ -401,6 +401,10 @@ consider_visiting (FTS *p, FTSENT *ent)
}
else
{
+ /* Ignore unlink() error for vanished files. */
+ if (ENOENT == ent->fts_errno && options.ignore_readdir_race)
+ return;
+
nonfatal_target_file_error (ent->fts_errno, ent->fts_path);
/* Continue despite the error, as file name without stat info
* might be better than not even processing the file name. This

View File

@ -1,7 +1,7 @@
Summary: The GNU versions of find utilities (find and xargs)
Name: findutils
Version: 4.6.0
Release: 20%{?dist}
Release: 21%{?dist}
Epoch: 1
License: GPLv3+
Group: Applications/File
@ -49,6 +49,9 @@ Patch12: findutils-4.6.0-leaf-opt.patch
# fix programming mistakes detected by static analysis (#1606953)
Patch13: findutils-4.6.0-covscan.patch
# fix find not obeying option -ignore_readdir_race in symlink_loop (#2232278)
Patch14: findutils-4.6.0-ignore_readdir_race-symlink_loop.patch
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
Conflicts: filesystem < 3
@ -150,6 +153,9 @@ fi
%{_infodir}/find-maint.info.gz
%changelog
* Wed Aug 16 2023 Lukáš Zaoral <lzaoral@redhat.com> - 1:4.6.0-21
- fix find not obeying option -ignore_readdir_race in symlink_loop (#2232278)
* Mon Nov 05 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-20
- fix programming mistakes detected by static analysis (#1606953)