On Tue, Jun 29, 2021 at 10:40:54PM +0000, David A. Holland wrote: > Module Name: src > Committed By: dholland > Date: Tue Jun 29 22:40:54 UTC 2021 > > Modified Files: > src/external/cddl/osnet/sys/sys: vnode.h > src/share/man/man9: errno.9 vnsubr.9 > src/sys/dev: firmload.c fss.c kloader.c vnd.c > src/sys/kern: kern_acct.c kern_core.c kern_descrip.c kern_ktrace_vfs.c > kern_module_vfs.c subr_exec_fd.c subr_kobj_vfs.c tty_ptm.c > vfs_syscalls.c vfs_vnops.c > src/sys/miscfs/fdesc: fdesc_vnops.c > src/sys/modules/lua: lua.c > src/sys/sys: filedesc.h vnode.h > src/sys/ufs/lfs: ulfs_extattr.c ulfs_quota1.c > src/sys/ufs/ufs: ufs_extattr.c ufs_quota1.c > > Log Message: > Add containment for the cloning devices hack in vn_open. > > Cloning devices (and also things like /dev/stderr) work by allocating > a struct file, stuffing it in the file table (which is a layer > violation), stuffing the file descriptor number for it in a magic > field of struct lwp (which is gross), and then "failing" with one of > two magic errnos, EDUPFD or EMOVEFD.
bpf seems to be completely broken after this change. At least for me on amd64 with a monolithic kernel (neither dhcpcd nor wpa_supplicant work). Martin