From 58e925ce5fa24f2c37907a2bf1a39fd494ce86fd Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 10 Jan 2006 11:55:13 +0000 Subject: Avoid the double-free (first in fts_read, second in fts_close) that would occur when an `active' directory is made inaccessible (e.g., via chmod a-x) during a traversal. (fts_read): After a failed fchdir, update sp->fts_cur before returning. Reproduce this failure by mkdir -p a/b; cd a; chmod a-x . b Reported by Stavros Passas. --- lib/fts.c | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/fts.c') diff --git a/lib/fts.c b/lib/fts.c index ed09697e0..fb1a72a00 100644 --- a/lib/fts.c +++ b/lib/fts.c @@ -522,6 +522,7 @@ next: tmp = p; if (p->fts_level == FTS_ROOTLEVEL) { if (FCHDIR(sp, sp->fts_rfd)) { SET(FTS_STOP); + sp->fts_cur = p; return (NULL); } fts_load(sp, p); -- cgit v1.2.3-54-g00ecf