aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajesh Borundia <rajesh.borundia@qlogic.com>2013-04-02 05:34:40 +0000
committerDavid S. Miller <davem@davemloft.net>2013-04-02 14:27:10 -0400
commitd8fe3436df256ce48d953dc342ac114e6e368476 (patch)
treeb73b1655eab9daec6c804bc16249da77f24aaa92
parent8466563e16d5198b6efeb3b51791b95b6aaacb6b (diff)
qlcnic: Fix potential NULL dereference
[net-next:master 301/302] drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c:563 qlcnic_set_multi() error: potential null dereference 'cur'. (kzalloc returns null) o Break out of the loop after memory allocation failure. Program all the MAC addresses that were cached in the return path. Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
index ddc130b2337..253b3ac1604 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
@@ -560,6 +560,8 @@ void qlcnic_set_multi(struct net_device *netdev)
netdev_for_each_mc_addr(ha, netdev) {
cur = kzalloc(sizeof(struct qlcnic_mac_list_s),
GFP_ATOMIC);
+ if (cur == NULL)
+ break;
memcpy(cur->mac_addr,
ha->addr, ETH_ALEN);
list_add_tail(&cur->list, &adapter->vf_mc_list);