4.9-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Roland Dreier <rol...@purestorage.com>

commit 8435168d50e66fa5eae01852769d20a36f9e5e83 upstream.

Check to make sure that ctx->cm_id->device is set before we use it.
Otherwise userspace can trigger a NULL dereference by doing
RDMA_USER_CM_CMD_SET_OPTION on an ID that is not bound to a device.

Cc: <sta...@vger.kernel.org>
Reported-by: <syzbot+a67bc93e14682d92f...@syzkaller.appspotmail.com>
Signed-off-by: Roland Dreier <rol...@purestorage.com>
Signed-off-by: Jason Gunthorpe <j...@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 drivers/infiniband/core/ucma.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -1231,6 +1231,9 @@ static int ucma_set_ib_path(struct ucma_
        if (!optlen)
                return -EINVAL;
 
+       if (!ctx->cm_id->device)
+               return -EINVAL;
+
        memset(&sa_path, 0, sizeof(sa_path));
 
        ib_sa_unpack_path(path_data->path_rec, &sa_path);


Reply via email to