On Thu, Oct 01, 2020 at 01:11:33AM +0200, Jann Horn wrote: > On Thu, Oct 1, 2020 at 1:03 AM Tycho Andersen <tycho@tycho.pizza> wrote: > > On Wed, Sep 30, 2020 at 10:34:51PM +0200, Michael Kerrisk (man-pages) wrote: > > > On 9/30/20 5:03 PM, Tycho Andersen wrote: > > > > On Wed, Sep 30, 2020 at 01:07:38PM +0200, Michael Kerrisk (man-pages) wrote: > > > >> ┌─────────────────────────────────────────────────────┐ > > > >> │FIXME │ > > > >> ├─────────────────────────────────────────────────────┤ > > > >> │From my experiments, it appears that if a SEC‐ │ > > > >> │COMP_IOCTL_NOTIF_RECV is done after the target │ > > > >> │process terminates, then the ioctl() simply blocks │ > > > >> │(rather than returning an error to indicate that the │ > > > >> │target process no longer exists). │ > > > > > > > > Yeah, I think Christian wanted to fix this at some point, > > > > > > Do you have a pointer that discussion? I could not find it with a > > > quick search. > > > > > > > but it's a > > > > bit sticky to do. > > > > > > Can you say a few words about the nature of the problem? > > > > I remembered wrong, it's actually in the tree: 99cdb8b9a573 ("seccomp: > > notify about unused filter"). So maybe there's a bug here? > > That thing only notifies on ->poll, it doesn't unblock ioctls; and > Michael's sample code uses SECCOMP_IOCTL_NOTIF_RECV to wait. So that > commit doesn't have any effect on this kind of usage. Yes, thanks. And the ones stuck in RECV are waiting on a semaphore so we don't have a count of all of them, unfortunately. We could maybe look inside the wait_list, but that will probably make people angry :) Tycho