diff options
author | Rajesh Borundia <rajesh.borundia@qlogic.com> | 2013-04-02 07:34:40 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-02 20:27:10 +0200 |
commit | d8fe3436df256ce48d953dc342ac114e6e368476 (patch) | |
tree | b73b1655eab9daec6c804bc16249da77f24aaa92 /drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | |
parent | tcp: Remove dead sysctl_tcp_cookie_size declaration (diff) | |
download | linux-d8fe3436df256ce48d953dc342ac114e6e368476.tar.xz linux-d8fe3436df256ce48d953dc342ac114e6e368476.zip |
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>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 2 |
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 ddc130b23378..253b3ac16046 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); |