mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-03 12:35:02 +00:00
Change directory permissions in pre-order.
In this order, it won't try to recurse into a directory for which it doesn't have permission, before changing that permission. This follows an existing behavior in other BSDs, linux, OS X. Obtained from: NetBSD
This commit is contained in:
parent
ff09e23f53
commit
db1a93d4fe
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=283997
@ -162,14 +162,16 @@ done: argv += optind;
|
||||
atflag = AT_SYMLINK_NOFOLLOW;
|
||||
|
||||
switch (p->fts_info) {
|
||||
case FTS_D: /* Change it at FTS_DP. */
|
||||
case FTS_D:
|
||||
if (!Rflag)
|
||||
fts_set(ftsp, p, FTS_SKIP);
|
||||
continue;
|
||||
break;
|
||||
case FTS_DNR: /* Warn, chmod. */
|
||||
warnx("%s: %s", p->fts_path, strerror(p->fts_errno));
|
||||
rval = 1;
|
||||
break;
|
||||
case FTS_DP: /* Already changed at FTS_D. */
|
||||
continue;
|
||||
case FTS_ERR: /* Warn, continue. */
|
||||
case FTS_NS:
|
||||
warnx("%s: %s", p->fts_path, strerror(p->fts_errno));
|
||||
|
Loading…
Reference in New Issue
Block a user