iw_cxgb4: check return value of alloc_skb
authorPan Bian <bianpan2016@163.com>
Sun, 23 Apr 2017 09:09:11 +0000 (17:09 +0800)
committerDoug Ledford <dledford@redhat.com>
Fri, 28 Apr 2017 17:09:55 +0000 (13:09 -0400)
Function alloc_skb() will return a NULL pointer when there is no enough
memory. However, the return value of alloc_skb() is directly used
without validation in function send_fw_pass_open_req(). This patches
checks the return value of alloc_skb() against NULL.

Signed-off-by: Pan Bian <bianpan2016@163.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/cxgb4/cm.c

index 02faf1f125fd88e73b98cb4de9ca95913f3324cd..b6fe45924c6ed5a3a835c89f00b9265a940e57ef 100644 (file)
@@ -3799,6 +3799,8 @@ static void send_fw_pass_open_req(struct c4iw_dev *dev, struct sk_buff *skb,
        int ret;
 
        req_skb = alloc_skb(sizeof(struct fw_ofld_connection_wr), GFP_KERNEL);
+       if (!req_skb)
+               return;
        req = (struct fw_ofld_connection_wr *)__skb_put(req_skb, sizeof(*req));
        memset(req, 0, sizeof(*req));
        req->op_compl = htonl(WR_OP_V(FW_OFLD_CONNECTION_WR) | FW_WR_COMPL_F);