From nobody Sat Oct 4 19:35:15 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cfG2q3wFNz69fsm; Sat, 04 Oct 2025 19:35:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cfG2q2lzxz3r5s; Sat, 04 Oct 2025 19:35:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759606515; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mLk2ygABJUwMv1lJ5Jxg9dCXhAUgEgyWh1M0bAqNnrE=; b=QFoFSTSyYB79U3mqcQfYu2gQ25gj+dAubxiz0gI5Q2ox8Rbw71y7jqSLIrJ4hLmWThg+ul 2G/zZoIGLe8mHpYFK+JMsIERjUOP5pEV1fIGeCoaARGc8tvcIfIMWlkBFGFn8mN/OaXW2s XjFnxCGN4Y0x8nM/3KVf54VQGK1VcWNg9hSOD1Y0LkSkWrshLCG71+Gt27a/MzKQ7xsoDH pVWOFv28KfjUVf7JGmt0Vta5kXPipYZdH+PMQnB3JKqDnRNhFbewW0ltZ8Z1WTHaTR5BCH iQpxjII0FnFCxYYooSrg2qpfd1He/Ji54iVhOfMUzEG133m3U+Fn+bQOaYfwvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759606515; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mLk2ygABJUwMv1lJ5Jxg9dCXhAUgEgyWh1M0bAqNnrE=; b=L0fQ1ewi9PyRFhWv9U89D09fAeQkylSMwV0Ftor9Im9u8to9aqcPBMiXF2qH5US5y29kR8 /OO9BSHldezFVIIKlWHMwRfdFGx3LTxgGp7QsLuUkRIDhqZQVp2YGJjn/Sg/xijworwXtJ lhSjuAJpDidRfinVRQzwX1Xa5HppDb428PaZTRBijnZ9I27XJ/yjx5NlVjopAMaUeCVY2Z ta625rj94uh9NaOxhdllmK1YbT0jkjEgWfUVuUOLfRrNhv9Ha+g6aRV8Yhl7FghhW+pB7W DFPf0HgWp3lvBUaKC8exXY3krpc97LvGtiMWGFZCZjaOJCE3I/9zJhhTv3cq8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1759606515; a=rsa-sha256; cv=none; b=bHY/bMQN/XNk2Tzt7Oo9H9xN9nLccZv889+CEVkK4VOLMbv1p86ZxgRS7E0WjtQrvmK1t0 JA/yNC97zBmlunlpYeek65hwYStPub4WBFN87IhbsqAH9+hlC/kGEcCBSbMDhITFO9sUlz r3TzuzxDFOa+CQkq1IsdedocsgCa/HG1A2Lt9OhKnl+LjUgNF3kAPNY8hcGIwQh57i2wts BA6K/GnlRtKYxwhIDU8SbkqBvJrMKxndqjjwThBEHuvxo2ATNPKsv/OX79clj2vOZeVPE4 /Mosx5TIYaox9bvIvG9J7b9UM01x3ChGnX8QeJAdIMyp4R4HF8o/F3eRtLIxwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cfG2q2Jzjzw3l; Sat, 04 Oct 2025 19:35:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 594JZFwL079179; Sat, 4 Oct 2025 19:35:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 594JZFMq079176; Sat, 4 Oct 2025 19:35:15 GMT (envelope-from git) Date: Sat, 4 Oct 2025 19:35:15 GMT Message-Id: <202510041935.594JZFMq079176@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d114dc0e2260 - stable/15 - pw: Use copy_file_range() when copying skeleton files List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d114dc0e226011272738bcf35b72ce9ae2bfb98d Auto-Submitted: auto-generated The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d114dc0e226011272738bcf35b72ce9ae2bfb98d commit d114dc0e226011272738bcf35b72ce9ae2bfb98d Author: Mark Johnston AuthorDate: 2025-09-18 22:39:39 +0000 Commit: Mark Johnston CommitDate: 2025-10-04 19:34:57 +0000 pw: Use copy_file_range() when copying skeleton files As a bonus, check for I/O errors and print them to standard error. Reviewed by: bapt, emaste MFC after: 1 week Sponsored by: The FreeBSD Foundation Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D52588 (cherry picked from commit a03d150a3d44c49344ebd0862defd1a5ad1f524e) --- usr.sbin/pw/cpdir.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/usr.sbin/pw/cpdir.c b/usr.sbin/pw/cpdir.c index 63068cab000c..3839a039495a 100644 --- a/usr.sbin/pw/cpdir.c +++ b/usr.sbin/pw/cpdir.c @@ -36,10 +36,10 @@ #include "pw.h" void -copymkdir(int rootfd, char const * dir, int skelfd, mode_t mode, uid_t uid, +copymkdir(int rootfd, char const *dir, int skelfd, mode_t mode, uid_t uid, gid_t gid, int flags) { - char *p, lnk[MAXPATHLEN], copybuf[4096]; + char *p, lnk[MAXPATHLEN]; int len, homefd, srcfd, destfd; ssize_t sz; struct stat st; @@ -120,8 +120,12 @@ copymkdir(int rootfd, char const * dir, int skelfd, mode_t mode, uid_t uid, continue; } - while ((sz = read(srcfd, copybuf, sizeof(copybuf))) > 0) - write(destfd, copybuf, sz); + do { + sz = copy_file_range(srcfd, NULL, destfd, NULL, + SSIZE_MAX, 0); + } while (sz > 0); + if (sz < 0) + warn("copy_file_range"); close(srcfd); /*