Re: [RFC v4 2/2] file, epoll: Implement do_replace() and eventpoll_replace()
From: Tycho Andersen
Date: Mon Mar 27 2023 - 09:16:49 EST
On Mon, Mar 27, 2023 at 07:06:46AM -0600, Tycho Andersen wrote:
> On Mon, Mar 27, 2023 at 11:01:06AM +0200, Christian Brauner wrote:
> > On Fri, Mar 24, 2023 at 07:43:13AM -0600, Tycho Andersen wrote:
> > > Perhaps we could add a flag that people could set from SECCOMP_ADDFD
> > > asking for this extra behavior?
> >
> > + if (fd > 0 && addfd->ioctl_flags & SECCOMP_ADDFD_FLAG_EPOLL) {
> > + /*
> > + * - retrieve old struct file that addfd->fd refered to if any.
> > + * - call your epoll seccomp api to update the references in the epoll instance
> > + */
> > epoll_seccomp_notify()
> > + }
> > +
> > + if (fd > 0 && addfd->ioctl_flags & SECCOMP_ADDFD_FLAG_IO_URING) {
> > + /*
> > + * - call your io_uring seccomp api to update the references in the io_uring instance
> > + */
> > io_uring_seccomp_notify()
> > + }
>
> Looks reasonable to me, thanks.
One change I might suggest is only using a single flag bit -- we don't
need to consume all of seccomp's remaining flag bits with the various
subsystems. If you want to do this logic for epoll, you almost
certainly want it for io_uring, select, and whatever else is out
there.
Tycho