git: 8660d530f72f - stable/13 - etcupdate: Preserve permissions when installing a resolved file.

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 13 Jul 2022 18:01:28 UTC
The branch stable/13 has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=8660d530f72f4103add7487db56b941e6297a8cc

commit 8660d530f72f4103add7487db56b941e6297a8cc
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2022-05-25 21:20:40 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2022-07-13 18:00:50 +0000

    etcupdate: Preserve permissions when installing a resolved file.
    
    Similar to the change in 1a04446f088c79cc2cf85fd86e60ebcc228d3075, use
    cat to overwrite the contents of the existing file rather than cp so
    that metadata of the existing file such as permissions and ownership
    is preserved.
    
    PR:             255514
    Reported by:    uqs
    
    (cherry picked from commit f8287caae48246e34d6a7af5446df3c36127b7f0)
---
 usr.sbin/etcupdate/etcupdate.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/etcupdate/etcupdate.sh b/usr.sbin/etcupdate/etcupdate.sh
index b686db7d9f9a..e0223123aae2 100755
--- a/usr.sbin/etcupdate/etcupdate.sh
+++ b/usr.sbin/etcupdate/etcupdate.sh
@@ -673,8 +673,9 @@ install_resolved()
 		return 1
 	fi
 
-	log "cp -Rp ${CONFLICTS}$1 ${DESTDIR}$1"
-	cp -Rp ${CONFLICTS}$1 ${DESTDIR}$1 >&3 2>&1
+	# Use cat rather than cp to preserve metadata
+	log "cat ${CONFLICTS}$1 > ${DESTDIR}$1"
+	cat ${CONFLICTS}$1 > ${DESTDIR}$1 2>&3
 	post_install_file $1
 	return 0
 }