From d5fddcd57f4e692dd100121bb66adea8129fdbd6 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 8 Oct 2009 01:32:44 +0200 Subject: cp: revert a recent buggy change, and add a comment why it's wrong Signed-off-by: Denys Vlasenko --- coreutils/cp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'coreutils') diff --git a/coreutils/cp.c b/coreutils/cp.c index 2c0b90bc9..9f6c12367 100644 --- a/coreutils/cp.c +++ b/coreutils/cp.c @@ -182,10 +182,12 @@ int cp_main(int argc, char **argv) if (copy_file(*argv, dest, flags) < 0) { status = EXIT_FAILURE; } - free((void*)dest); if (*++argv == last) { + /* possibly leaking dest... */ break; } + /* don't move up: dest may be == last and not malloced! */ + free((void*)dest); } /* Exit. We are NOEXEC, not NOFORK. We do exit at the end of main() */ -- cgit v1.2.3