Mike Castle <[EMAIL PROTECTED]> wrote:
> Not sure if this is a bug or feature (or even Linux specific).
>
> nexus@thune[3:30pm]~(937) ls foo bar
> ls: foo: No such file or directory
> ls: bar: No such file or directory
> nexus@thune[3:31pm]~(938) ln -s foo bar
> nexus@thune[3:31pm]~(939) rm bar
> rm: remove symbolic link `bar'? y
> nexus@thune[3:31pm]~(940) ln -s foo bar
> nexus@thune[3:31pm]~(941) rm -f bar
> nexus@thune[3:31pm]~(942) rm --version
> rm (fileutils) 4.1.9
> nexus@thune[3:31pm]~(943) touch foo
> nexus@thune[3:32pm]~(946) ln -s foo bar
> nexus@thune[3:32pm]~(947) rm bar
>
> In the dangling symlink case, should it be prompting about removal?

Thanks a lot for the report!
It's a bug.

Here's a fix:

        * src/remove.c (prompt): Fix test for write-protectedness to also
        check errno == EACCES.  Otherwise, `rm dangling-symlink' would
        mistakenly prompt.  Reported by Mike Castle.

        * tests/rm/Makefile.am (TESTS): Add dangling-symlink.
        * tests/rm/dangling-symlink: New file/test, for the above fix.

Index: src/remove.c
===================================================================
RCS file: /fetish/fileutils/src/remove.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -p -u -r1.56 -r1.57
--- src/remove.c        29 Jun 2002 11:50:38 -0000      1.56
+++ src/remove.c        4 Jul 2002 12:06:49 -0000       1.57
@@ -560,7 +560,7 @@ prompt (char const *filename, struct rm_
   *is_dir = T_UNKNOWN;
 
   if ((!x->ignore_missing_files && (x->interactive || x->stdin_tty)
-       && (write_protected = euidaccess (filename, W_OK)))
+       && (write_protected = (euidaccess (filename, W_OK) && errno == EACCES)))
       || x->interactive)
     {
       struct stat sbuf;

_______________________________________________
Bug-fileutils mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-fileutils

Reply via email to