Module Name: src Committed By: riastradh Date: Sun Nov 10 16:20:13 UTC 2024
Modified Files: src/sys/compat/netbsd32: netbsd32_ioctl.c Log Message: netbsd32_ioctl: Use fd_set_exclose instead of open-coding it. No functional change intended -- this just reduces unnecessary copies of open-coded logic which, when copied incompletely, led to: PR kern/58822: close-on-exec is broken for dup3 and opening cloning devices To generate a diff of this commit: cvs rdiff -u -r1.121 -r1.122 src/sys/compat/netbsd32/netbsd32_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/netbsd32/netbsd32_ioctl.c diff -u src/sys/compat/netbsd32/netbsd32_ioctl.c:1.121 src/sys/compat/netbsd32/netbsd32_ioctl.c:1.122 --- src/sys/compat/netbsd32/netbsd32_ioctl.c:1.121 Sat May 11 10:22:17 2024 +++ src/sys/compat/netbsd32/netbsd32_ioctl.c Sun Nov 10 16:20:12 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_ioctl.c,v 1.121 2024/05/11 10:22:17 martin Exp $ */ +/* $NetBSD: netbsd32_ioctl.c,v 1.122 2024/11/10 16:20:12 riastradh Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.121 2024/05/11 10:22:17 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_ioctl.c,v 1.122 2024/11/10 16:20:12 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -1301,9 +1301,7 @@ netbsd32_ioctl(struct lwp *l, syscallarg(netbsd32_u_long) com; syscallarg(netbsd32_voidp) data; } */ - struct proc *p = l->l_proc; struct file *fp; - struct filedesc *fdp; u_long com; int error = 0; size_t size; @@ -1311,7 +1309,6 @@ netbsd32_ioctl(struct lwp *l, void *data, *memp = NULL; void *data32, *memp32 = NULL; unsigned int fd; - fdfile_t *ff; int tmp; #define STK_PARAMS 128 uint64_t stkbuf[STK_PARAMS/sizeof(uint64_t)]; @@ -1343,7 +1340,6 @@ netbsd32_ioctl(struct lwp *l, size32 = 0; size = 0; - fdp = p->p_fd; fd = SCARG(uap, fd); if ((fp = fd_getfile(fd)) == NULL) return EBADF; @@ -1352,15 +1348,10 @@ netbsd32_ioctl(struct lwp *l, goto out; } - ff = atomic_load_consume(&fdp->fd_dt)->dt_ff[SCARG(uap, fd)]; switch (com = SCARG(uap, com)) { - case FIOCLEX: - ff->ff_exclose = true; - fdp->fd_exclose = true; - goto out; - case FIONCLEX: - ff->ff_exclose = false; + case FIOCLEX: + fd_set_exclose(l, fd, com == FIOCLEX); goto out; }