Message ID | 20190125031333.17196-1-yuehaibing@huawei.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] net: hns3: Fix potential NULL dereference on allocation error | expand |
> From: yuehaibing > Sent: Friday, January 25, 2019 3:14 AM > To: davem@davemloft.net; Zhuangyuzeng (Yisen) <yisen.zhuang@huawei.com>; > Salil Mehta <salil.mehta@huawei.com>; lipeng (Y) <lipeng321@huawei.com> > Cc: linux-kernel@vger.kernel.org; netdev@vger.kernel.org; yuehaibing <yuehaibing@huawei.com> > Subject: [PATCH net-next] net: hns3: Fix potential NULL dereference on > allocation error > > hclge_mac_update_stats_complete doesn't check for NULL > returns of kcalloc, it may result in an Oops. > > Fixes: d174ea75c96a ("net: hns3: add statistics for PFC frames and MAC > control frames") > Signed-off-by: YueHaibing <yuehaibing@huawei.com> > --- > drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c > b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c > index 64b1589..7971606 100644 > --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c > +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c > @@ -343,6 +343,9 @@ static int hclge_mac_update_stats_complete(struct > hclge_dev *hdev, u32 desc_num) > int ret; > > desc = kcalloc(desc_num, sizeof(struct hclge_desc), GFP_KERNEL); > + if (!desc) > + return -ENOMEM; > + looks good to me. Reviewed-by: Salil Mehta <salil.mehta@huawei.com>
ping ... On 2019/1/25 11:13, YueHaibing wrote: > hclge_mac_update_stats_complete doesn't check for NULL > returns of kcalloc, it may result in an Oops. > > Fixes: d174ea75c96a ("net: hns3: add statistics for PFC frames and MAC control frames") > Signed-off-by: YueHaibing <yuehaibing@huawei.com> > --- > drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c > index 64b1589..7971606 100644 > --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c > +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c > @@ -343,6 +343,9 @@ static int hclge_mac_update_stats_complete(struct hclge_dev *hdev, u32 desc_num) > int ret; > > desc = kcalloc(desc_num, sizeof(struct hclge_desc), GFP_KERNEL); > + if (!desc) > + return -ENOMEM; > + > hclge_cmd_setup_basic_desc(&desc[0], HCLGE_OPC_STATS_MAC_ALL, true); > ret = hclge_cmd_send(&hdev->hw, desc, desc_num); > if (ret) { >
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c index 64b1589..7971606 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -343,6 +343,9 @@ static int hclge_mac_update_stats_complete(struct hclge_dev *hdev, u32 desc_num) int ret; desc = kcalloc(desc_num, sizeof(struct hclge_desc), GFP_KERNEL); + if (!desc) + return -ENOMEM; + hclge_cmd_setup_basic_desc(&desc[0], HCLGE_OPC_STATS_MAC_ALL, true); ret = hclge_cmd_send(&hdev->hw, desc, desc_num); if (ret) {
hclge_mac_update_stats_complete doesn't check for NULL returns of kcalloc, it may result in an Oops. Fixes: d174ea75c96a ("net: hns3: add statistics for PFC frames and MAC control frames") Signed-off-by: YueHaibing <yuehaibing@huawei.com> --- drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 3 +++ 1 file changed, 3 insertions(+)