Showing error 1794

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/infiniband/core/cma.c
Line in file: 2480
Project: Linux Kernel
Project version: 2.6.28
Confirmation: Fixed by f45ee80eb0dda1fbf32bf63189627a9e1e157a95
Tools: Smatch (1.59)
Entered: 2013-09-11 08:47:26 UTC


Source:

2450        memset(&rep, 0, sizeof rep);
2451        rep.status = status;
2452        if (status == IB_SIDR_SUCCESS) {
2453                rep.qp_num = id_priv->qp_num;
2454                rep.qkey = id_priv->qkey;
2455        }
2456        rep.private_data = private_data;
2457        rep.private_data_len = private_data_len;
2458
2459        return ib_send_cm_sidr_rep(id_priv->cm_id.ib, &rep);
2460}
2461
2462int rdma_accept(struct rdma_cm_id *id, struct rdma_conn_param *conn_param)
2463{
2464        struct rdma_id_private *id_priv;
2465        int ret;
2466
2467        id_priv = container_of(id, struct rdma_id_private, id);
2468        if (!cma_comp(id_priv, CMA_CONNECT))
2469                return -EINVAL;
2470
2471        if (!id->qp && conn_param) {
2472                id_priv->qp_num = conn_param->qp_num;
2473                id_priv->srq = conn_param->srq;
2474        }
2475
2476        switch (rdma_node_get_transport(id->device->node_type)) {
2477        case RDMA_TRANSPORT_IB:
2478                if (cma_is_ud_ps(id->ps))
2479                        ret = cma_send_sidr_rep(id_priv, IB_SIDR_SUCCESS,
2480                                                conn_param->private_data,
2481                                                conn_param->private_data_len);
2482                else if (conn_param)
2483                        ret = cma_accept_ib(id_priv, conn_param);
2484                else
2485                        ret = cma_rep_recv(id_priv);
2486                break;
2487        case RDMA_TRANSPORT_IWARP:
2488                ret = cma_accept_iw(id_priv, conn_param);
2489                break;
2490        default:
Show full sources