Re: [PATCH net v2] scm: fix negative fds with SO_PASSPIDFD

From: stsp
Date: Sun Nov 17 2024 - 05:11:44 EST


17.11.2024 12:40, Alexander Mikhalitsyn пишет:
Hi Stas,

Actually, it's not a forgotten check. It's intended behavior to pass
through errors from pidfd_prepare() to
the userspace. In my first version [1] of the patch I tried to return
ESRCH instead of EINVAL in your case, but
then during discussions we decided to remove that.

[1] https://lore.kernel.org/all/20230316131526.283569-2-aleksandr.mikhalitsyn@xxxxxxxxxxxxx/
Yes, the patch you referenced above,
only calls put_cmsg() with an error code.

But the code I can see now in git, does
much more. Namely,
if (pidfd_file)
    fd_install(pidfd, pidfd_file);

Or:

put_unused_fd(pidfd);

And I really can't find any ">=0" check
in those funcs. What am I missing?
Is it safe to call fd_install(-22, pidfd_file)?