diff options
author | sascha <sascha@nomad.localdomain> | 2007-10-16 16:40:29 +0200 |
---|---|---|
committer | sascha <sascha@nomad.localdomain> | 2007-10-16 16:40:29 +0200 |
commit | 25850aa80a97c5efd51a24c920d19a4daad44ce5 (patch) | |
tree | 65eeeb92d2e92136b839e253eff8bb0827c420f4 /commands/cp.c | |
parent | fa814e8fae23377d1eb67f76b4e64656cf530e5a (diff) | |
download | barebox-25850aa80a97c5efd51a24c920d19a4daad44ce5.tar.gz barebox-25850aa80a97c5efd51a24c920d19a4daad44ce5.tar.xz |
fix error path in cp command.
Diffstat (limited to 'commands/cp.c')
-rw-r--r-- | commands/cp.c | 13 |
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; } |