From nobody Mon Apr 21 23:07:08 2025 X-Original-To: dev-commits-src-main@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 4ZhLbw5q1dz5tBCV; Mon, 21 Apr 2025 23:07:08 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZhLbw3w4fz3QDF; Mon, 21 Apr 2025 23:07:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745276828; 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=4lVmkBgBajIJQRXwvgL9rzaJc2pB9KXFz1ZGDeEzQmE=; b=qHx6+Xrr3vFmzXMUVDPiDzSeFsQx32voL0dw1PzgCvyBrQasSSVSgCMq8H3AaMdRfC0DWP 2must4yXfxoNfkNGSr1MVV0COb1FVbe6wv9J2ztDYXXhmZw3RO2dhyDY9iqxZXsW4tlWib PjDJ13tyfG802I9P4V03UewOGf47f5N+iat1WqhqGLxuTZGxg+Iwo7YUGMPtbzpzxlqZhA b0uxmLiX9Sw4IAL/7vYAB3Q1MnU4/o5uD7Y7zimPhSm7J1Iy81mEjZ1sQx+akDQ5fw68iR 2G/GE9AhHFzFvPTXvOIrU6kEXzmFMchhVyzoH38UDhPew4pbX8yoKWfABd4QUQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745276828; a=rsa-sha256; cv=none; b=IVb6yAyq8F8vj9bL59z7C0gpTSi7f0YKfuqd/02zvMi4yKQV2TBFEKz/jV5JB225nIx81V QtO5r3YOcEFH/TQoJk3JtM04ag0Q6i1OjGdeqWs9UxLtFHQVOJlie8alegaM4WnOofYMYS SIimjM5o5wu1ZzFPkUxgzuNVV/IV79RRJhRaS27RnIS+p/3atdCtBWtKAcRnxrY/S0TYQq P9hqQCHZ1y3rJyo7NEi50m+qQkY7Qfe28Ykor6m6XhMvN4dBv28l52tTcyBhtL5I9Ocg9F GtX5RN3X8i9302rv4UEFi4o7D0UlGu3cWEWute3vG+Dxs+p1nbYTvnCgObiABw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745276828; 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=4lVmkBgBajIJQRXwvgL9rzaJc2pB9KXFz1ZGDeEzQmE=; b=ujejDx7ObQbV1DmB6J9bCQyIsDK13YN1ADGV4E/tbV//e3fhMaTA0MUZ7ZbfCR5p3P6AY5 l64LBgHEX9bNNwBiEzDRd61DyV0dCoihGg6CvarFKgNkhauUcqS4VQeuSgHZ91ZNBKI0zi OzB/nNRYzoWdvojo6cW0ahPdfeuuaoSR5EhpWV+5Dpv/7dfSFGx/jzDBCAt7a862yApZwr LIhxn3kMdGAYO5tjWAWxwyO1GL5x3gsqWoIH/Hp9cmIAHkpjAtHSz1KlwMCdlXT4Bpc7n0 A21bBVqhgDjbjPRSeaVpVMHxo+f+WbrT0Lv8uv45JmbO+ANByS6nQ88iXKvtiw== 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 4ZhLbw30ypz18Lq; Mon, 21 Apr 2025 23:07:08 +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 53LN78KU041904; Mon, 21 Apr 2025 23:07:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53LN78RW041901; Mon, 21 Apr 2025 23:07:08 GMT (envelope-from git) Date: Mon, 21 Apr 2025 23:07:08 GMT Message-Id: <202504212307.53LN78RW041901@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 15581af7c2d3 - main - exec: Remove parameter 'segflg' from exec_copyin_args() List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@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/main X-Git-Reftype: branch X-Git-Commit: 15581af7c2d30360313dcad74dc5dc83c02f9df0 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=15581af7c2d30360313dcad74dc5dc83c02f9df0 commit 15581af7c2d30360313dcad74dc5dc83c02f9df0 Author: Wuyang Chung AuthorDate: 2025-02-05 06:54:54 +0000 Commit: Mark Johnston CommitDate: 2025-04-21 23:06:35 +0000 exec: Remove parameter 'segflg' from exec_copyin_args() In kern "copyin" means copy data from user address space to kernel address space. But in the function exec_copyin_args() there is a parameter 'segflg' that is used to specify the address space of the parameter 'fname'. In the source code there are two places where 'segflg' are not UIO_USERSPACE. In both cases the 'fname' argument are NULL so the argument 'segflg' are not important there. So it is safe to remove the parameter 'segflg' from the function exec_copyin_args(). Reviewed by: markj, jhb MFC after: 2 weeks Pull Request: https://github.com/freebsd/freebsd-src/pull/1590 --- sys/compat/freebsd32/freebsd32_misc.c | 11 +++++------ sys/compat/freebsd32/freebsd32_util.h | 2 +- sys/compat/linux/linux_misc.c | 8 ++++---- sys/kern/kern_exec.c | 13 +++++-------- sys/sys/imgact.h | 3 +-- 5 files changed, 16 insertions(+), 21 deletions(-) diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c index 3efc93969419..cc777f2bf830 100644 --- a/sys/compat/freebsd32/freebsd32_misc.c +++ b/sys/compat/freebsd32/freebsd32_misc.c @@ -401,7 +401,7 @@ freebsd32_sigaltstack(struct thread *td, */ int freebsd32_exec_copyin_args(struct image_args *args, const char *fname, - enum uio_seg segflg, uint32_t *argv, uint32_t *envv) + uint32_t *argv, uint32_t *envv) { char *argp, *envp; uint32_t *p32, arg; @@ -422,7 +422,7 @@ freebsd32_exec_copyin_args(struct image_args *args, const char *fname, /* * Copy the file name. */ - error = exec_args_add_fname(args, fname, segflg); + error = exec_args_add_fname(args, fname, UIO_USERSPACE); if (error != 0) goto err_exit; @@ -477,8 +477,8 @@ freebsd32_execve(struct thread *td, struct freebsd32_execve_args *uap) error = pre_execve(td, &oldvmspace); if (error != 0) return (error); - error = freebsd32_exec_copyin_args(&eargs, uap->fname, UIO_USERSPACE, - uap->argv, uap->envv); + error = freebsd32_exec_copyin_args(&eargs, uap->fname, uap->argv, + uap->envv); if (error == 0) error = kern_execve(td, &eargs, NULL, oldvmspace); post_execve(td, error, oldvmspace); @@ -496,8 +496,7 @@ freebsd32_fexecve(struct thread *td, struct freebsd32_fexecve_args *uap) error = pre_execve(td, &oldvmspace); if (error != 0) return (error); - error = freebsd32_exec_copyin_args(&eargs, NULL, UIO_SYSSPACE, - uap->argv, uap->envv); + error = freebsd32_exec_copyin_args(&eargs, NULL, uap->argv, uap->envv); if (error == 0) { eargs.fd = uap->fd; error = kern_execve(td, &eargs, NULL, oldvmspace); diff --git a/sys/compat/freebsd32/freebsd32_util.h b/sys/compat/freebsd32/freebsd32_util.h index 4ac314f4391e..1ae016814329 100644 --- a/sys/compat/freebsd32/freebsd32_util.h +++ b/sys/compat/freebsd32/freebsd32_util.h @@ -120,7 +120,7 @@ void freebsd32_rusage_out(const struct rusage *s, struct rusage32 *s32); struct image_args; int freebsd32_exec_copyin_args(struct image_args *args, const char *fname, - enum uio_seg segflg, uint32_t *argv, uint32_t *envv); + uint32_t *argv, uint32_t *envv); struct kinfo_knote; struct kinfo_knote32; diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index e789586160b6..b88f1451f1a2 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -2612,7 +2612,7 @@ linux_seccomp(struct thread *td, struct linux_seccomp_args *args) */ static int linux_exec_copyin_args(struct image_args *args, const char *fname, - enum uio_seg segflg, l_uintptr_t *argv, l_uintptr_t *envv) + l_uintptr_t *argv, l_uintptr_t *envv) { char *argp, *envp; l_uintptr_t *ptr, arg; @@ -2633,7 +2633,7 @@ linux_exec_copyin_args(struct image_args *args, const char *fname, /* * Copy the file name. */ - error = exec_args_add_fname(args, fname, segflg); + error = exec_args_add_fname(args, fname, UIO_USERSPACE); if (error != 0) goto err_exit; @@ -2696,8 +2696,8 @@ linux_execve(struct thread *td, struct linux_execve_args *args) LINUX_CTR(execve); - error = linux_exec_copyin_args(&eargs, args->path, UIO_USERSPACE, - args->argp, args->envp); + error = linux_exec_copyin_args(&eargs, args->path, args->argp, + args->envp); if (error == 0) error = linux_common_execve(td, &eargs); AUDIT_SYSCALL_EXIT(error == EJUSTRETURN ? 0 : error, td); diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index f6d0201f9b37..a943ec339e75 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -225,8 +225,7 @@ sys_execve(struct thread *td, struct execve_args *uap) error = pre_execve(td, &oldvmspace); if (error != 0) return (error); - error = exec_copyin_args(&args, uap->fname, UIO_USERSPACE, - uap->argv, uap->envv); + error = exec_copyin_args(&args, uap->fname, uap->argv, uap->envv); if (error == 0) error = kern_execve(td, &args, NULL, oldvmspace); post_execve(td, error, oldvmspace); @@ -251,8 +250,7 @@ sys_fexecve(struct thread *td, struct fexecve_args *uap) error = pre_execve(td, &oldvmspace); if (error != 0) return (error); - error = exec_copyin_args(&args, NULL, UIO_SYSSPACE, - uap->argv, uap->envv); + error = exec_copyin_args(&args, NULL, uap->argv, uap->envv); if (error == 0) { args.fd = uap->fd; error = kern_execve(td, &args, NULL, oldvmspace); @@ -282,8 +280,7 @@ sys___mac_execve(struct thread *td, struct __mac_execve_args *uap) error = pre_execve(td, &oldvmspace); if (error != 0) return (error); - error = exec_copyin_args(&args, uap->fname, UIO_USERSPACE, - uap->argv, uap->envv); + error = exec_copyin_args(&args, uap->fname, uap->argv, uap->envv); if (error == 0) error = kern_execve(td, &args, uap->mac_p, oldvmspace); post_execve(td, error, oldvmspace); @@ -1328,7 +1325,7 @@ out: */ int exec_copyin_args(struct image_args *args, const char *fname, - enum uio_seg segflg, char **argv, char **envv) + char **argv, char **envv) { u_long arg, env; int error; @@ -1348,7 +1345,7 @@ exec_copyin_args(struct image_args *args, const char *fname, /* * Copy the file name. */ - error = exec_args_add_fname(args, fname, segflg); + error = exec_args_add_fname(args, fname, UIO_USERSPACE); if (error != 0) goto err_exit; diff --git a/sys/sys/imgact.h b/sys/sys/imgact.h index 4f0c8aff9f42..c1c94a2eabfd 100644 --- a/sys/sys/imgact.h +++ b/sys/sys/imgact.h @@ -119,8 +119,7 @@ int exec_map_stack(struct image_params *); int exec_new_vmspace(struct image_params *, struct sysentvec *); void exec_setregs(struct thread *, struct image_params *, uintptr_t); int exec_shell_imgact(struct image_params *); -int exec_copyin_args(struct image_args *, const char *, enum uio_seg, - char **, char **); +int exec_copyin_args(struct image_args *, const char *, char **, char **); int pre_execve(struct thread *td, struct vmspace **oldvmspace); void post_execve(struct thread *td, int error, struct vmspace *oldvmspace); #endif