summaryrefslogtreecommitdiff
path: root/src/cmd/rm/rm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/rm/rm.c')
-rwxr-xr-xsrc/cmd/rm/rm.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cmd/rm/rm.c b/src/cmd/rm/rm.c
index ceff76b..86a30b9 100755
--- a/src/cmd/rm/rm.c
+++ b/src/cmd/rm/rm.c
@@ -77,7 +77,7 @@ int rm(char *path) {
return -1;
}
} else if (S_ISDIR(sbuf.st_mode)) {
- warnc(EISDIR, "%s", path);
+ fprintf(stderr, "rm: %s: %s\n", path, strerror(EISDIR));
return -1;
} else {
if (unlink(path) != 0) {
@@ -101,9 +101,10 @@ int removedir(const char * const path) {
size_t len = strlen(path) + strlen(name) + 3;
char *newpath = (char *)malloc(len);
if (newpath == NULL) {
+ perror("rm");
exit(EXIT_FAILURE);
}
- strncat(newpath, path, len);
+ strncpy(newpath, path, len);
strncat(newpath, "/", (len -= strlen(path)));
strncat(newpath, name, --len);
status = rm(newpath);