GNU bug report logs -
#12339
Bug: rm -fr . doesn't dir depth first deletion yet it is documented to do so.
Previous Next
Reported by: Linda Walsh <coreutils <at> tlinx.org>
Date: Mon, 3 Sep 2012 00:34:02 UTC
Severity: normal
Done: Assaf Gordon <assafgordon <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #128 received at 12339 <at> debbugs.gnu.org (full text, mbox):
Jim Meyering wrote:
> Paul Eggert wrote:
>
>> On 09/05/2012 07:56 AM, Jim Meyering wrote:
>>> + /* When failing to rmdir an unreadable directory, the typical errno value
>>> + is EISDIR or ENOTDIR, but that would be meaningless in a diagnostic.
>>> + When that happens and the errno value from the failed open is EPERM
>>> + or EACCES, use the earlier, more descriptive errno value. */
>>> + if (ent->fts_info == FTS_DNR
>>> + && (errno == ENOTEMPTY || errno == EISDIR || errno == ENOTDIR)
>>> + && (ent->fts_errno == EPERM || ent->fts_errno == EACCES))
>>
>> Thanks for doing all that. I did notice that the code mentions
>> ENOTEMPTY but the comment doesn't -- is that intentional?
>
> Yes. I considered whether to remove explicit mention of those errno
> values in the comment for precisely that reason, but didn't bother.
> Good point. I've relaxed the comment wording enough to permit other
> explicit E* names:
>
> diff --git a/src/remove.c b/src/remove.c
> index 0c25462..a141718 100644
> --- a/src/remove.c
> +++ b/src/remove.c
> @@ -392,8 +392,8 @@ excise (FTS *fts, FTSENT *ent, struct rm_options const *x, bool is_dir)
> if (ignorable_missing (x, errno))
> return RM_OK;
>
> - /* When failing to rmdir an unreadable directory, the typical errno value
> - is EISDIR or ENOTDIR, but that would be meaningless in a diagnostic.
> + /* When failing to rmdir an unreadable directory, we see errno values
> + like EISDIR or ENOTDIR, but they would be meaningless in a diagnostic.
> When that happens and the errno value from the failed open is EPERM
> or EACCES, use the earlier, more descriptive errno value. */
> if (ent->fts_info == FTS_DNR
I've pushed the result:
http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=ccbd3f3b290cb1bb
http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=57dd06703cb89ba5
This bug report was last modified 6 years and 186 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.