Hello, Roland!
Quoting Roland Dreier <[email protected]>:
> +static int srp_init_qp(struct srp_target_port *target,
> + struct ib_qp *qp)
> +{
> + struct ib_qp_attr *attr;
> + int ret;
> +
> + attr = kmalloc(sizeof *attr, GFP_KERNEL);
> + if (!attr)
> + return -ENOMEM;
> +
> + ret = ib_find_cached_pkey(target->srp_host->dev,
> + target->srp_host->port,
> + be16_to_cpu(target->path.pkey),
> + &attr->pkey_index);
> + if (ret)
> + return ret;
> +
> + attr->qp_state = IB_QPS_INIT;
> + attr->qp_access_flags = (IB_ACCESS_REMOTE_READ |
> + IB_ACCESS_REMOTE_WRITE);
> + attr->port_num = target->srp_host->port;
> +
> + return ib_modify_qp(qp, attr,
> + IB_QP_STATE |
> + IB_QP_PKEY_INDEX |
> + IB_QP_ACCESS_FLAGS |
> + IB_QP_PORT);
> +}
This seems to leak sizeof *attr bytes if ib_find_cached_pkey
returns an error.
--
MST
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]