rdma_cm: fail iwarp accepts w/o connection params
authorSteve Wise <swise@opengridcomputing.com>
Tue, 21 Feb 2017 19:21:57 +0000 (11:21 -0800)
committerBen Hutchings <ben@decadent.org.uk>
Mon, 5 Jun 2017 20:13:50 +0000 (21:13 +0100)
commit f2625f7db4dd0bbd16a9c7d2950e7621f9aa57ad upstream.

cma_accept_iw() needs to return an error if conn_params is NULL.
Since this is coming from user space, we can crash.

Reported-by: Shaobo He <shaobo@cs.utah.edu>
Acked-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/infiniband/core/cma.c

index d0d4aa9..09cc0fc 100644 (file)
@@ -2737,6 +2737,9 @@ static int cma_accept_iw(struct rdma_id_private *id_priv,
        struct iw_cm_conn_param iw_param;
        int ret;
 
        struct iw_cm_conn_param iw_param;
        int ret;
 
+       if (!conn_param)
+               return -EINVAL;
+
        ret = cma_modify_qp_rtr(id_priv, conn_param);
        if (ret)
                return ret;
        ret = cma_modify_qp_rtr(id_priv, conn_param);
        if (ret)
                return ret;