[email protected] wrote:
> >Synopsis:    rm -rf "" # prints error message but should be silent
> >Category:    system
> >Environment:
>       System      : OpenBSD 5.9
>       Details     : OpenBSD 5.9 (GENERIC.MP) #1888: Fri Feb 26 01:20:19 MST 
> 2016
>                        
> [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.amd64
>       Machine     : amd64
> >Description:
>       The command:
> 
>       rm -rf ""
> 
>       prints to STDERR:
> 
>       rm: No such file or directory
> 
>       but it should print nothing because of the -f flag.

This fixes it.


Index: rm.c
===================================================================
RCS file: /cvs/src/bin/rm/rm.c,v
retrieving revision 1.37
diff -u -p -r1.37 rm.c
--- rm.c        15 Apr 2016 23:09:57 -0000      1.37
+++ rm.c        28 Jun 2016 14:49:42 -0000
@@ -150,8 +150,11 @@ rm_tree(char **argv)
        flags = FTS_PHYSICAL;
        if (!needstat)
                flags |= FTS_NOSTAT;
-       if (!(fts = fts_open(argv, flags, NULL)))
-               err(1, NULL);
+       if (!(fts = fts_open(argv, flags, NULL))) {
+               if (!fflag || errno != ENOENT)
+                       err(1, NULL);
+               return;
+       }
        while ((p = fts_read(fts)) != NULL) {
                switch (p->fts_info) {
                case FTS_DNR:

Reply via email to