Re: [PATCH v2] fs/pipe: Deinitialize the watch_queue when pipe is freed

From: Eric Biggers
Date: Mon May 09 2022 - 16:50:33 EST


On Mon, May 09, 2022 at 09:17:26PM +0800, Haimin Zhang wrote:
> From: Haimin Zhang <tcs_kernel@xxxxxxxxxxx>
>
> Add a new function call to deinitialize the watch_queue of a freed pipe.
> When a pipe node is freed, it doesn't make pipe->watch_queue->pipe null.
> Later when function post_one_notification is called, it will use this
> field, but it has been freed and watch_queue->pipe is a dangling pointer.
> It makes a uaf issue.
> Check wqueu->defunct before pipe check since pipe becomes invalid once all
> watch queues were cleared.
>
> Reported-by: TCS Robot <tcs_robot@xxxxxxxxxxx>
> Signed-off-by: Haimin Zhang <tcs_kernel@xxxxxxxxxxx>

Is this fixing something? If so it should have a "Fixes" tag.

- Eric