From nobody Sun Oct 5 13:13:33 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 4cfjWy36LKz69s8C; Sun, 05 Oct 2025 13:13:34 +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 4cfjWx5zZpz3q1V; Sun, 05 Oct 2025 13:13:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759670013; 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=eqdNl5i4dc2z0kwxRj0k6MiAIxy/uUE4J1fafyci6rM=; b=eDSYP+MBBDxvuBukAYmenLRwruuzbnl9XPe0orFS/7qnXEiCi0IDuPGnraZsQ7VrfYfnP7 Ee1XhJxLfr4vy+UumjOBpWEzaBu+oWMAC/uPnZ5Cx3wH+rKRkGOp6kYT6UcwU6ROnIA5AE g21Vrp/3Wnb/QwOWypbmiVMIUxbaSWmYX9Fh1Ak23GAPYAoel3hbBWUb0vcKSBv8qkIwfr yJEPqFpzl8lTD4zeeGNkasbLek6O9sOfJwXiWIQQnGlr5/H4DPWNxuqQ5T5J70beU2KoiE gTMQXCGoNL8/FxGLqqL5HRpzm7FmsnAAqWM9lx7pDJIIODcTbgTyfzM5OvQx5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759670013; 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=eqdNl5i4dc2z0kwxRj0k6MiAIxy/uUE4J1fafyci6rM=; b=eIKZYfDfG26HyU4O9kNtOP31wL0RGCgfY6y4dOr2ZfXb/VrSI8MNob6dM85oWb4lSzzqWU FOFMat2H3s5MtWPe8SOwOfS3jutZX6O+6YmsSmg+G0JDzW5gq1CK494Az6ONW8ct4XX2a3 VLqeeZsh4HpHDXrIW7qnkX2MWLXyvZdnXfot6O8c57RZzDzglalfT/pyN7B83LmXY45zAU 19KdjU3KNu9RYjlH7Y1VXeiM6+jgJL/TdECAtPX+IjDdh8YNnn1rIoKpBrGLkohNzk60eN /6V+rc177HZZxBJ5jusRmHIojNPGmwJJrtpTVLVFsG8zdLm0NXXZiQn7c3KfDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1759670013; a=rsa-sha256; cv=none; b=pB/0fpwMB2z4zqMDEkdN01BPDHDB4Uuq6eSL2TGvFEMu9qq0CDrHcOcI45B37AlWO/BZmw 38GOO3i5UKwOZudvdH8apqDjXq/xJM2wYIMxNFsa73ubLQm/ZO+0hFCVsohy+GRBFFw+dS EriFOEZEr/yiE6k60NkcGfJcVDMBlBMvZTwftsfxpXgcToaFC18tjqrUW+0QpGSayQVFIJ Qq+vCwOofPhZULIKucrCfdJsUd8KB89pVlKQDrnt1jvSYOhS/lDiggvGxjeSsmMtHAuKJp EwQ/MOKKD4JRWi84tYmYfO2sibzASxw3GL0KsU3Q+mJhJAs4RrjSf0LJ9sUKBg== 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 4cfjWx5Xfhz3n; Sun, 05 Oct 2025 13:13:33 +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 595DDXY9075272; Sun, 5 Oct 2025 13:13:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 595DDXpw075269; Sun, 5 Oct 2025 13:13:33 GMT (envelope-from git) Date: Sun, 5 Oct 2025 13:13:33 GMT Message-Id: <202510051313.595DDXpw075269@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: bdd021191274 - stable/14 - 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/14 X-Git-Reftype: branch X-Git-Commit: bdd021191274d70bf9a2f752f45f76501321cdde Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=bdd021191274d70bf9a2f752f45f76501321cdde commit bdd021191274d70bf9a2f752f45f76501321cdde Author: Mark Johnston AuthorDate: 2025-09-18 22:39:39 +0000 Commit: Mark Johnston CommitDate: 2025-10-05 13:13:01 +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); /*