Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8d3bcbf authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Jason Gunthorpe
Browse files

RDMA/ucma: Check that device exists prior to accessing it



Ensure that device exists prior to accessing its properties.

Reported-by: default avatar <syzbot+71655d44855ac3e76366@syzkaller.appspotmail.com>
Fixes: 75216638 ("RDMA/cma: Export rdma cm interface to userspace")
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 4b658d1b
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -1336,7 +1336,7 @@ static ssize_t ucma_notify(struct ucma_file *file, const char __user *inbuf,
{
{
	struct rdma_ucm_notify cmd;
	struct rdma_ucm_notify cmd;
	struct ucma_context *ctx;
	struct ucma_context *ctx;
	int ret;
	int ret = -EINVAL;


	if (copy_from_user(&cmd, inbuf, sizeof(cmd)))
	if (copy_from_user(&cmd, inbuf, sizeof(cmd)))
		return -EFAULT;
		return -EFAULT;
@@ -1345,7 +1345,9 @@ static ssize_t ucma_notify(struct ucma_file *file, const char __user *inbuf,
	if (IS_ERR(ctx))
	if (IS_ERR(ctx))
		return PTR_ERR(ctx);
		return PTR_ERR(ctx);


	if (ctx->cm_id->device)
		ret = rdma_notify(ctx->cm_id, (enum ib_event_type)cmd.event);
		ret = rdma_notify(ctx->cm_id, (enum ib_event_type)cmd.event);

	ucma_put_ctx(ctx);
	ucma_put_ctx(ctx);
	return ret;
	return ret;
}
}