RDMA/uverbs: check for allocation failure in uapi_add_elm()
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 30 May 2019 08:20:24 +0000 (11:20 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jan 2020 13:50:52 +0000 (14:50 +0100)
commitccd93cb455305a6a643d4c541763c22edd45365d
tree36134266b0242734c4d1d7790438d6032953ef53
parent6c350e974c953d9a806c73b629eb46f40504743f
RDMA/uverbs: check for allocation failure in uapi_add_elm()

[ Upstream commit cac2a301c02a9b178842e22df34217da7854e588 ]

If the kzalloc() fails then we should return ERR_PTR(-ENOMEM).  In the
current code it's possible that the kzalloc() fails and the
radix_tree_insert() inserts the NULL pointer successfully and we return
the NULL "elm" pointer to the caller.  That results in a NULL pointer
dereference.

Fixes: 9ed3e5f44772 ("IB/uverbs: Build the specs into a radix tree at runtime")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/core/uverbs_uapi.c