[git commit master] cp: revert a recent buggy change, and add a comment why it's wrong

Denys Vlasenko vda.linux at googlemail.com
Wed Oct 7 23:32:44 UTC 2009


commit: http://git.busybox.net/busybox/commit/?id=d5fddcd57f4e692dd100121bb66adea8129fdbd6
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 coreutils/cp.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/coreutils/cp.c b/coreutils/cp.c
index 2c0b90b..9f6c123 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() */
-- 
1.6.3.3



More information about the busybox-cvs mailing list