[LTP] [PATCH v2] Correctly check if PIDFD_INFO_EXIT is available
Andrea Cervesato
andrea.cervesato@suse.com
Wed Jul 30 14:31:22 CEST 2025
On 7/30/25 2:04 PM, Andrea Cervesato wrote:
> On 7/30/25 11:35 AM, Cyril Hrubis wrote:
>> Hi!
>> Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
>>
> It seems we need to add also a couple of errno checks more.
> ioctl(PIDFD_INFO_EXIT ...) starts to fail with EINVAL from a certain
> version of the kernel, after introducing `pidfd_ioctl` function in
> fs/pidfs.c, while before only ENOTTY was raised.
>
> After the introduction of "cdda1f26e74b - pidfd: add ioctl to retrieve
> pid info" in v6.13, the logic inside the kernel changed and we get
> ESRCH error due to the introduction of `struct pidfd_info`, but the
> lack of PIDFD_INFO_EXIT support: at that specific commit, only
> PIDFD_INFO_PID is supported.
>
> This is due to the implementation of `pidfd_ioctl()`, that is not
> validating commands before asking for a pid task.
>
> I guess there's either a enhancement to do in the kernel
> implementation, or a lack of checks from our side. Since we are
> talking about 3 versions of the kernel ago, we should probably verify
> that kernel doesn't support PIDFD_INFO_EXIT by looking at the
> following ioctl() errno:
>
> - ENOTTY
> - EINVAL
> - ESRCH
>
> - Andrea
>
The `pidfd_ioctl()` commands check has been introduced in v6.13 with
"8ce352818820 pidfs: check for valid ioctl commands", so the patch v4
that I sent needs to check for ENOIOCTLCMD as well..
- Andrea
More information about the ltp
mailing list