From 447bc2d17f3abfac1f0f1a801d01641aada7027c Mon Sep 17 00:00:00 2001
From: Glenn L McGrath <bug1@ihug.co.nz>
Date: Sun, 11 Jan 2004 05:20:59 +0000
Subject: Patch from Matt Kraai to fix debian bug #227081

cp does not truncate existing destinations.  That is, after
running

 echo foo > foo
 echo fubar > fubar
 cp foo fubar

the contents of fubar are

 foo
 r

instead of

 foo
---
 libbb/copy_file.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libbb/copy_file.c b/libbb/copy_file.c
index ffdb8242b..7ddb9a23f 100644
--- a/libbb/copy_file.c
+++ b/libbb/copy_file.c
@@ -153,7 +153,7 @@ int copy_file(const char *source, const char *dest, int flags)
 				}
 			}
 
-			dst_fd = open(dest, O_WRONLY);
+			dst_fd = open(dest, O_WRONLY|O_TRUNC);
 			if (dst_fd == -1) {
 				if (!(flags & FILEUTILS_FORCE)) {
 					bb_perror_msg("unable to open `%s'", dest);
-- 
cgit v1.2.3-55-g6feb