On 2020-01-24, Sargun Dhillon <sargun@xxxxxxxxx> wrote: > On Fri, Jan 24, 2020 at 10:03 AM Tycho Andersen <tycho@xxxxxxxx> wrote: > > > > On Fri, Jan 24, 2020 at 01:17:42AM -0800, Sargun Dhillon wrote: > > > Currently, this just opens the group leader of the thread that triggere > > > the event, as pidfds (currently) are limited to group leaders. > > > > I don't love the semantics of this; when they're not limited to thread > > group leaders any more, we won't be able to change this. Is that work > > far off? > > > > Tycho > > We would be able to change this in the future if we introduced a flag like > SECCOMP_USER_NOTIF_FLAG_PIDFD_THREAD which would send a > pidfd that's for the thread, and not just the group leader. The flag could > either be XOR with SECCOMP_USER_NOTIF_FLAG_PIDFD, or > could require both. Alternatively, we can rename > SECCOMP_USER_NOTIF_FLAG_PIDFD to > SECCOMP_USER_NOTIF_FLAG_GROUP_LEADER_PIDFD. Possibly unpopular proposal -- would it make sense to just store the pidfd_open(2) flags rather than coming up with our own set for SECCOMP_USER_NOTIF? If/when pidfds are expanded to include non-leaders there will be a corresponding flag for pidfd_open(2). Something like: struct seccomp_notif { __u64 id; __u32 pid; __u32 flags; struct seccomp_data data; __u64 pidfd_flags; // or __u32 -- not sure what Christian plans __u32 pidfd; __u32 __padding; }; This does mean there'll be an additional flags field, but I think it's a slightly more consistent way to indicate "SECCOMP_USER_NOTIF_FLAG_PIDFD implies a pidfd_open(2) on the traced task". -- Aleksa Sarai Senior Software Engineer (Containers) SUSE Linux GmbH <https://www.cyphar.com/>
Attachment:
signature.asc
Description: PGP signature