net: hns3: set maximum length to resp_data_len for exceptional case
authorPeng Li <lipeng321@huawei.com>
Thu, 4 Jul 2019 14:04:28 +0000 (22:04 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 5 Jul 2019 22:39:38 +0000 (15:39 -0700)
If HCLGE_MBX_MAX_RESP_DATA_SIZE > HCLGE_MBX_MAX_RESP_DATA_SIZE,
the memcpy will cause out of memory. So this patch just set
resp_data_len to the maximum length for this case.

Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c

index 9adeba931902a64c360a888c9bd4461ce1474ff0..a38ac7cfe16b053ce7a84389f01e91be7f615df9 100644 (file)
@@ -29,6 +29,10 @@ static int hclge_gen_resp_to_vf(struct hclge_vport *vport,
                        "PF fail to gen resp to VF len %d exceeds max len %d\n",
                        resp_data_len,
                        HCLGE_MBX_MAX_RESP_DATA_SIZE);
+               /* If resp_data_len is too long, set the value to max length
+                * and return the msg to VF
+                */
+               resp_data_len = HCLGE_MBX_MAX_RESP_DATA_SIZE;
        }
 
        hclge_cmd_setup_basic_desc(&desc, HCLGEVF_OPC_MBX_PF_TO_VF, false);