[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250704-ernten-fehlschlag-05a175183e12@brauner>
Date: Fri, 4 Jul 2025 10:51:01 +0200
From: Christian Brauner <brauner@...nel.org>
To: Laura Brehm <laurajfbrehm@...il.com>
Cc: linux-kernel@...r.kernel.org, Laura Brehm <laurabrehm@....com>,
linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH 1/2] coredump: fix race condition between connect and
putting pidfs dentry
On Thu, Jul 03, 2025 at 02:02:43PM +0200, Laura Brehm wrote:
> In Commit 1d8db6fd698de1f73b1a7d72aea578fdd18d9a87 ("pidfs, coredump:
> add PIDFD_INFO_COREDUMP"), the coredump handling logic puts the pidfs
> entry right after `connect`, and states:
>
> Make sure to only put our reference after connect() took
> its own reference keeping the pidfs entry alive ...
>
> However, `connect` does not seem to take a reference to the pidfs
> entry, just the pid struct (please correct me if I'm wrong here).
kernel_connect()
-> sock->ops->connect::unix_stream_connect()
-> prepare_peercred()
-> pidfs_register_pid()
> Since the expectation is that the coredump server makes a
> PIDFD_GET_INFO ioctl to get the coredump info - see Commit
> a3b4ca60f93ff3e8b41fffbf63bb02ef3b169c5e ("coredump: add coredump
> socket"):
>
> The pidfd for the crashing task will contain information how the
> task coredumps. The PIDFD_GET_INFO ioctl gained a new flag
> PIDFD_INFO_COREDUMP which can be used to retreive the coredump
> information.
>
> If the coredump gets a new coredump client connection the kernel
> guarantees that PIDFD_INFO_COREDUMP information is available.
>
> This seems to result in the coredump server racing with the kernel to
> get the pidfd before the kernel puts the pidfs entry, and if it loses
> it won't be able to retrieve the coredump information.
Honestly curious: is that something you actually observed or that you
think may happen or that an some coding assistant thinks might happen?
Powered by blists - more mailing lists