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

Reply via email to