Re: [PATCH 1/3] userfaultfd: non-cooperative: fix fork fctx->new memleak

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx>
> 
> We have a memleak in the ->new ctx if the uffd of the parent is closed
> before the fork event is read, nothing frees the new context.
> 
> Reported-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>

I think
Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx>
would be appropriate here.

> Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx>
> ---
>  fs/userfaultfd.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
> index d2f15a6..5087a69 100644
> --- a/fs/userfaultfd.c
> +++ b/fs/userfaultfd.c
> @@ -548,6 +548,15 @@ static void userfaultfd_event_wait_completion(struct userfaultfd_ctx *ctx,
>  		if (ACCESS_ONCE(ctx->released) ||
>  		    fatal_signal_pending(current)) {
>  			__remove_wait_queue(&ctx->event_wqh, &ewq->wq);
> +			if (ewq->msg.event == UFFD_EVENT_FORK) {
> +				struct userfaultfd_ctx *new;
> +
> +				new = (struct userfaultfd_ctx *)
> +					(unsigned long)
> +					ewq->msg.arg.reserved.reserved1;
> +
> +				userfaultfd_ctx_put(new);
> +			}
>  			break;
>  		}

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux