RDMA/uverbs: Check for null return of kmalloc_array

Bugzilla: http://bugzilla.redhat.com/2036599

commit 7694a7de22c53a312ea98960fcafc6ec62046531
Author: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Date:   Fri Dec 31 17:33:15 2021 +0800

    RDMA/uverbs: Check for null return of kmalloc_array

    Because of the possible failure of the allocation, data might be NULL
    pointer and will cause the dereference of the NULL pointer later.
    Therefore, it might be better to check it and return -ENOMEM.

    Fixes: 6884c6c4bd ("RDMA/verbs: Store the write/write_ex uapi entry points in the uverbs_api")
    Link: https://lore.kernel.org/r/20211231093315.1917667-1-jiasheng@iscas.ac.cn
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>

Signed-off-by: Kamal Heib <kheib@redhat.com>
This commit is contained in:
Kamal Heib 2022-01-10 11:23:03 +02:00
parent 5be79fde7b
commit c9048d2a7f
1 changed files with 3 additions and 0 deletions

View File

@ -447,6 +447,9 @@ static int uapi_finalize(struct uverbs_api *uapi)
uapi->num_write_ex = max_write_ex + 1;
data = kmalloc_array(uapi->num_write + uapi->num_write_ex,
sizeof(*uapi->write_methods), GFP_KERNEL);
if (!data)
return -ENOMEM;
for (i = 0; i != uapi->num_write + uapi->num_write_ex; i++)
data[i] = &uapi->notsupp_method;
uapi->write_methods = data;