summaryrefslogtreecommitdiffstats
path: root/commands/cp.c
diff options
context:
space:
mode:
authorsascha <sascha@nomad.localdomain>2007-10-16 16:40:29 +0200
committersascha <sascha@nomad.localdomain>2007-10-16 16:40:29 +0200
commit25850aa80a97c5efd51a24c920d19a4daad44ce5 (patch)
tree65eeeb92d2e92136b839e253eff8bb0827c420f4 /commands/cp.c
parentfa814e8fae23377d1eb67f76b4e64656cf530e5a (diff)
downloadbarebox-25850aa80a97c5efd51a24c920d19a4daad44ce5.tar.gz
barebox-25850aa80a97c5efd51a24c920d19a4daad44ce5.tar.xz
fix error path in cp command.
Diffstat (limited to 'commands/cp.c')
-rw-r--r--commands/cp.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/commands/cp.c b/commands/cp.c
index 449cc10299..19fd46a4b3 100644
--- a/commands/cp.c
+++ b/commands/cp.c
@@ -36,17 +36,22 @@ static int do_cp ( cmd_tbl_t *cmdtp, int argc, char *argv[])
int src = 0, dst = 0;
char *rw_buf = NULL;
+ if (argc != 3) {
+ u_boot_cmd_usage(cmdtp);
+ return 1;
+ }
+
rw_buf = xmalloc(RW_BUF_SIZE);
src = open(argv[1], O_RDONLY);
if (src < 0) {
- printf("could not open %s: %s\n", src, errno_str());
+ printf("could not open %s: %s\n", argv[1], errno_str());
goto out;
}
dst = open(argv[2], O_WRONLY | O_CREAT);
if ( dst < 0) {
- printf("could not open %s: %s\n", dst, errno_str());
+ printf("could not open %s: %s\n", argv[2], errno_str());
goto out;
}
@@ -67,9 +72,9 @@ static int do_cp ( cmd_tbl_t *cmdtp, int argc, char *argv[])
ret = 0;
out:
free(rw_buf);
- if (src)
+ if (src > 0)
close(src);
- if (dst)
+ if (dst > 0)
close(dst);
return ret;
}