summaryrefslogtreecommitdiffhomepage
path: root/coreutils/cp.c
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2021-06-24 15:08:15 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2021-06-25 00:23:29 +0200
commita84bbc54257e68ef149cbaff8835c9cb3605c9ac (patch)
tree9cb21b15f9abfc47f7f1db32985fbb79d78d6bf2 /coreutils/cp.c
parent294d0c85adcbcf48da1fc0f48dae3aed59c07436 (diff)
cp,mv: fix -t DIR option
When the '-t DIR' option is used the loop over the remaining arguments should terminate when a NULL pointer is reached. function old new delta mv_main 585 590 +5 cp_main 492 496 +4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 9/0) Total: 9 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/cp.c')
-rw-r--r--coreutils/cp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/coreutils/cp.c b/coreutils/cp.c
index b7f0e290f..50ca1ccea 100644
--- a/coreutils/cp.c
+++ b/coreutils/cp.c
@@ -252,7 +252,7 @@ int cp_main(int argc, char **argv)
}
}
}
- /* else: last is DIR from "t -DIR" */
+ /* else: last is DIR from "-t DIR" */
while (1) {
#if ENABLE_FEATURE_CP_LONG_OPTIONS
@@ -274,7 +274,7 @@ int cp_main(int argc, char **argv)
if (copy_file(*argv, dest, flags) < 0) {
status = EXIT_FAILURE;
}
- if (*++argv == last) {
+ if (!*++argv || *argv == last) {
/* possibly leaking dest... */
break;
}