[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <8fc38d0e-4138-4624-800e-b503bbd744e1@kernel.dk>
Date: Wed, 3 Apr 2024 07:44:51 -0600
From: Jens Axboe <axboe@...nel.dk>
To: Christian Brauner <brauner@...nel.org>
Cc: linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/3] userfaultfd: convert to ->read_iter()
On 4/3/24 4:09 AM, Christian Brauner wrote:
>> @@ -2215,16 +2216,25 @@ static int new_userfaultfd(int flags)
>> init_rwsem(&ctx->map_changing_lock);
>> atomic_set(&ctx->mmap_changing, 0);
>> ctx->mm = current->mm;
>> - /* prevent the mm struct to be freed */
>> - mmgrab(ctx->mm);
>> +
>> + fd = get_unused_fd_flags(O_RDONLY | (flags & UFFD_SHARED_FCNTL_FLAGS));
>> + if (fd < 0)
>> + goto err_out;
>>
>> /* Create a new inode so that the LSM can block the creation. */
>> - fd = anon_inode_create_getfd("[userfaultfd]", &userfaultfd_fops, ctx,
>> + file = anon_inode_create_getfile("[userfaultfd]", &userfaultfd_fops, ctx,
>> O_RDONLY | (flags & UFFD_SHARED_FCNTL_FLAGS), NULL);
>> - if (fd < 0) {
>> - mmdrop(ctx->mm);
>> - kmem_cache_free(userfaultfd_ctx_cachep, ctx);
>> + if (IS_ERR(file)) {
>> + fd = PTR_ERR(file);
>> + goto err_out;
>
> You're leaking the fd you allocated above.
Oops yes - thanks, fixed.
--
Jens Axboe
Powered by blists - more mailing lists