We have a file type flag, DFLAG_PASSABLE, which when clear indicates
that the file data is somehow tied to the owning process. For example,
knotes for a EVFILT_TIMER event have a notion of the owning process.
Descriptors for such files cannot be passed over a unix socket and are
not inherited by the child of a fork(). However, rfork() lets the child
share the fd table with the parent, and we do not check whether this is
safe.
Modify rfork() to fail if RFFDG is clear and the parent's table contains
a non-passable fd.
Reported by: syzbot+81270844d2029cf6ff5e@syzkaller.appspotmail.com