Resolve: #1188498 - fix a crash triggered by recursive bind mount
This commit is contained in:
parent
a37bc7851d
commit
d0e916c699
44
findutils-4.5.14-fts-cycle.patch
Normal file
44
findutils-4.5.14-fts-cycle.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From bf4d8abd7ae3624a13967275dcbaea19f6b6ceb5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
Date: Wed, 11 Feb 2015 13:48:12 +0100
|
||||||
|
Subject: [PATCH] fts: avoid crash when a cycle is added while traversing
|
||||||
|
|
||||||
|
This could be triggered by auto-mounting a recursive bind mount.
|
||||||
|
Reported by Michael Chapman in: https://bugzilla.redhat.com/1188498
|
||||||
|
* lib/fts.c (fts_read): Avoid removing the original hash table item
|
||||||
|
when leaving a directory that caused a cycle, and preserve the FTS_DC
|
||||||
|
flag.
|
||||||
|
|
||||||
|
Bug: https://bugzilla.redhat.com/1188498
|
||||||
|
Bug: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/34867
|
||||||
|
---
|
||||||
|
gl/lib/fts.c | 13 ++++++++++---
|
||||||
|
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||||
|
index 500e92c..f76c015 100644
|
||||||
|
--- a/gl/lib/fts.c
|
||||||
|
+++ b/gl/lib/fts.c
|
||||||
|
@@ -1091,9 +1091,16 @@ cd_dot_dot:
|
||||||
|
p->fts_errno = errno;
|
||||||
|
SET(FTS_STOP);
|
||||||
|
}
|
||||||
|
- p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP;
|
||||||
|
- if (p->fts_errno == 0)
|
||||||
|
- LEAVE_DIR (sp, p, "3");
|
||||||
|
+
|
||||||
|
+ /* If the directory causes a cycle, preserve the FTS_DC flag and keep
|
||||||
|
+ * the corresponding dev/ino pair in the hash table. It is going to be
|
||||||
|
+ * removed when leaving the original directory.
|
||||||
|
+ */
|
||||||
|
+ if (p->fts_info != FTS_DC) {
|
||||||
|
+ p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP;
|
||||||
|
+ if (p->fts_errno == 0)
|
||||||
|
+ LEAVE_DIR (sp, p, "3");
|
||||||
|
+ }
|
||||||
|
return ISSET(FTS_STOP) ? NULL : p;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
Summary: The GNU versions of find utilities (find and xargs)
|
Summary: The GNU versions of find utilities (find and xargs)
|
||||||
Name: findutils
|
Name: findutils
|
||||||
Version: 4.5.14
|
Version: 4.5.14
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Group: Applications/File
|
Group: Applications/File
|
||||||
@ -11,6 +11,9 @@ Source0: ftp://alpha.gnu.org/gnu/findutils/%{name}-%{version}.tar.gz
|
|||||||
# do not build locate
|
# do not build locate
|
||||||
Patch1: findutils-4.4.0-no-locate.patch
|
Patch1: findutils-4.4.0-no-locate.patch
|
||||||
|
|
||||||
|
# fix a crash triggered by recursive bind mount (#1188498)
|
||||||
|
Patch2: findutils-4.5.14-fts-cycle.patch
|
||||||
|
|
||||||
# add a new option -xautofs to find to not descend into directories on autofs
|
# add a new option -xautofs to find to not descend into directories on autofs
|
||||||
# file systems
|
# file systems
|
||||||
Patch3: findutils-4.4.2-xautofs.patch
|
Patch3: findutils-4.4.2-xautofs.patch
|
||||||
@ -48,6 +51,7 @@ useful for finding things on your system.
|
|||||||
%setup -q
|
%setup -q
|
||||||
rm -rf locate
|
rm -rf locate
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
@ -99,6 +103,9 @@ fi
|
|||||||
%{_infodir}/find-maint.info.gz
|
%{_infodir}/find-maint.info.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Feb 16 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.5.14-3
|
||||||
|
- fix a crash triggered by recursive bind mount (#1188498)
|
||||||
|
|
||||||
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.14-2
|
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.14-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user