diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2014-05-26 17:04:44 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-05-27 14:55:40 -0400 |
commit | e4514cbd972786af67dd6c442c072685387e22a2 (patch) | |
tree | abe29fe31e56595691892939cd91286efb5478ba | |
parent | d6d211db37e75de2ddc3a4f979038c40df7cc79c (diff) |
RDMA/cxgb3: Fix information leak in send_abort()
The cpl_abort_req struct has several reserved members which need to be
cleared to avoid disclosing kernel information. I have added a memset()
so now it matches the cxgb4 version of this function.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r-- | drivers/infiniband/hw/cxgb3/iwch_cm.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c index 095bb046e2c8..cb78b1e9bcd9 100644 --- a/drivers/infiniband/hw/cxgb3/iwch_cm.c +++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c | |||
@@ -418,6 +418,7 @@ static int send_abort(struct iwch_ep *ep, struct sk_buff *skb, gfp_t gfp) | |||
418 | skb->priority = CPL_PRIORITY_DATA; | 418 | skb->priority = CPL_PRIORITY_DATA; |
419 | set_arp_failure_handler(skb, abort_arp_failure); | 419 | set_arp_failure_handler(skb, abort_arp_failure); |
420 | req = (struct cpl_abort_req *) skb_put(skb, sizeof(*req)); | 420 | req = (struct cpl_abort_req *) skb_put(skb, sizeof(*req)); |
421 | memset(req, 0, sizeof(*req)); | ||
421 | req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_REQ)); | 422 | req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_REQ)); |
422 | req->wr.wr_lo = htonl(V_WR_TID(ep->hwtid)); | 423 | req->wr.wr_lo = htonl(V_WR_TID(ep->hwtid)); |
423 | OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_ABORT_REQ, ep->hwtid)); | 424 | OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_ABORT_REQ, ep->hwtid)); |