Introduction
Introduction Statistics Contact Development Disclaimer Help
rm: Don't attempt to remove . or .. - sbase - suckless unix tools
git clone git://git.suckless.org/sbase
Log
Files
Refs
README
LICENSE
---
commit 3f7c7c2497037ff29c84464059ea9a6442596354
parent 0df8cdc12d7a5600ad0c2b9420a14be4e2af340b
Author: Roberto E. Vargas Caballero <[email protected]>
Date: Thu, 24 Apr 2025 08:51:22 +0200
rm: Don't attempt to remove . or ..
POSIX explicitely mandates to ignore . or .. to avoid
pitfals like rm -r .* and no having files that begin
with a dot.
Diffstat:
M rm.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/rm.c b/rm.c
@@ -1,5 +1,6 @@
/* See LICENSE file for copyright and license details. */
#include <fcntl.h>
+#include <string.h>
#include "fs.h"
#include "util.h"
@@ -37,8 +38,10 @@ main(int argc, char *argv[])
return 0;
}
- for (; *argv; argc--, argv++)
- recurse(AT_FDCWD, *argv, NULL, &r);
+ for (; *argv; argc--, argv++) {
+ if (strcmp(*argv, ".") && strcmp(*argv, ".."))
+ recurse(AT_FDCWD, *argv, NULL, &r);
+ }
return rm_status || recurse_status;
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.