On 2024-10-09, Jonathan Corbet <corbet@xxxxxxx> wrote: > Aleksa Sarai <cyphar@xxxxxxxxxx> writes: > > >> In fairness, this is how statx works and statx does this to not require > >> syscall retries to figure out what flags the current kernel supports and > >> instead defers that to stx_mask. > >> > >> However, I think verifying the value is slightly less fragile -- as long > >> as we get a cheap way for userspace to check what flags are supported > >> (such as CHECK_FIELDS[1]). It would kind of suck if userspace would have > >> to do 50 syscalls to figure out what request_mask values are valid. > > > > Unfortunately, we probably need to find a different way to do > > CHECK_FIELDS for extensible-struct ioctls because CHECK_FIELDS uses the > > top bit in a u64 but we can't set a size that large with ioctl > > numbers... > > Add a separate PIDFD_GET_VALID_REQUEST_MASK ioctl()? > > But then I'm bad at designing interfaces... This might be a good argument for making CHECK_FIELDS just (-size) instead of setting the highest bit because that would work for any bit size (though admittedly, doing (-size) for a 14-bit number would still be a little weird). > > jon -- Aleksa Sarai Senior Software Engineer (Containers) SUSE Linux GmbH <https://www.cyphar.com/>
Attachment:
signature.asc
Description: PGP signature