summaryrefslogtreecommitdiffstats
path: root/commands/cp.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-02-27 09:29:13 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-02-27 19:53:52 +0100
commit7a61f5db46a07703f052bb7de73c7285b4b3f8d5 (patch)
tree68e4adee18560e0946f13364421c1cfb60eb14ee /commands/cp.c
parentaed0e6ba0396dc34a7b7af8a342b6682d9cd1ed0 (diff)
downloadbarebox-7a61f5db46a07703f052bb7de73c7285b4b3f8d5.tar.gz
barebox-7a61f5db46a07703f052bb7de73c7285b4b3f8d5.tar.xz
cp: fix memory leak
dst is an allocated string, we have to free it also when copy_file fails. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/cp.c')
-rw-r--r--commands/cp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/commands/cp.c b/commands/cp.c
index f78e3de013..565eca0c4a 100644
--- a/commands/cp.c
+++ b/commands/cp.c
@@ -77,9 +77,9 @@ static int do_cp(struct command *cmdtp, int argc, char *argv[])
char *dst;
dst = concat_path_file(argv[argc - 1], basename(argv[i]));
ret = copy_file(argv[i], dst, verbose);
+ free(dst);
if (ret)
goto out;
- free(dst);
} else {
ret = copy_file(argv[i], argv[argc - 1], verbose);
if (ret)