From: Jim Meyering Date: Tue, 10 Jan 2006 11:55:13 +0000 (+0000) Subject: Avoid the double-free (first in fts_read, second in fts_close) that X-Git-Tag: v6.0~936 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=58e925ce5fa24f2c37907a2bf1a39fd494ce86fd;p=thirdparty%2Fcoreutils.git 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. --- diff --git a/lib/fts.c b/lib/fts.c index ed09697e05..fb1a72a002 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);