aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/basename.c3
-rw-r--r--coreutils/cp.c2
-rw-r--r--coreutils/ln.c4
-rw-r--r--coreutils/mv.c2
-rw-r--r--coreutils/rm.c2
5 files changed, 7 insertions, 6 deletions
diff --git a/coreutils/basename.c b/coreutils/basename.c
index f59d7a8de..ec1f85bef 100644
--- a/coreutils/basename.c
+++ b/coreutils/basename.c
@@ -34,7 +34,8 @@ int basename_main(int argc, char **argv)
34 bb_show_usage(); 34 bb_show_usage();
35 } 35 }
36 36
37 s = bb_get_last_path_component(*++argv); 37 /* It should strip slash: /abc/def/ -> def */
38 s = bb_get_last_path_component_strip(*++argv);
38 39
39 if (*++argv) { 40 if (*++argv) {
40 n = strlen(*argv); 41 n = strlen(*argv);
diff --git a/coreutils/cp.c b/coreutils/cp.c
index 76dc566b3..889e4604d 100644
--- a/coreutils/cp.c
+++ b/coreutils/cp.c
@@ -87,7 +87,7 @@ int cp_main(int argc, char **argv)
87 } 87 }
88 88
89 while (1) { 89 while (1) {
90 dest = concat_path_file(last, bb_get_last_path_component(*argv)); 90 dest = concat_path_file(last, bb_get_last_path_component_strip(*argv));
91 DO_COPY: 91 DO_COPY:
92 if (copy_file(*argv, dest, flags) < 0) { 92 if (copy_file(*argv, dest, flags) < 0) {
93 status = 1; 93 status = 1;
diff --git a/coreutils/ln.c b/coreutils/ln.c
index a6499039e..f3c67aa36 100644
--- a/coreutils/ln.c
+++ b/coreutils/ln.c
@@ -45,7 +45,7 @@ int ln_main(int argc, char **argv)
45 45
46 if (argc == optind + 1) { 46 if (argc == optind + 1) {
47 *--argv = last; 47 *--argv = last;
48 last = bb_get_last_path_component(xstrdup(last)); 48 last = bb_get_last_path_component_strip(xstrdup(last));
49 } 49 }
50 50
51 do { 51 do {
@@ -57,7 +57,7 @@ int ln_main(int argc, char **argv)
57 NULL) 57 NULL)
58 ) { 58 ) {
59 src_name = xstrdup(*argv); 59 src_name = xstrdup(*argv);
60 src = concat_path_file(src, bb_get_last_path_component(src_name)); 60 src = concat_path_file(src, bb_get_last_path_component_strip(src_name));
61 free(src_name); 61 free(src_name);
62 src_name = src; 62 src_name = src;
63 } 63 }
diff --git a/coreutils/mv.c b/coreutils/mv.c
index 1d2977060..d13f4d54f 100644
--- a/coreutils/mv.c
+++ b/coreutils/mv.c
@@ -68,7 +68,7 @@ int mv_main(int argc, char **argv)
68 } 68 }
69 69
70 do { 70 do {
71 dest = concat_path_file(last, bb_get_last_path_component(*argv)); 71 dest = concat_path_file(last, bb_get_last_path_component_strip(*argv));
72 dest_exists = cp_mv_stat(dest, &dest_stat); 72 dest_exists = cp_mv_stat(dest, &dest_stat);
73 if (dest_exists < 0) { 73 if (dest_exists < 0) {
74 goto RET_1; 74 goto RET_1;
diff --git a/coreutils/rm.c b/coreutils/rm.c
index ba37762a8..a686fc40c 100644
--- a/coreutils/rm.c
+++ b/coreutils/rm.c
@@ -38,7 +38,7 @@ int rm_main(int argc, char **argv)
38 38
39 if (*argv != NULL) { 39 if (*argv != NULL) {
40 do { 40 do {
41 const char *base = bb_get_last_path_component(*argv); 41 const char *base = bb_get_last_path_component_strip(*argv);
42 42
43 if (DOT_OR_DOTDOT(base)) { 43 if (DOT_OR_DOTDOT(base)) {
44 bb_error_msg("cannot remove '.' or '..'"); 44 bb_error_msg("cannot remove '.' or '..'");