From patchwork Tue Apr 2 15:34:40 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajesh Borundia X-Patchwork-Id: 233079 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 088262C0104 for ; Wed, 3 Apr 2013 02:58:03 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761494Ab3DBP5x (ORCPT ); Tue, 2 Apr 2013 11:57:53 -0400 Received: from mvnat01.qlogic.com ([198.186.3.73]:24856 "HELO linux-zupk.site" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with SMTP id S1761342Ab3DBP5v (ORCPT ); Tue, 2 Apr 2013 11:57:51 -0400 Received: by linux-zupk.site (Postfix, from userid 0) id A98B25220B7; Tue, 2 Apr 2013 11:34:46 -0400 (EDT) From: Rajesh Borundia To: davem@davemloft.net Cc: netdev@vger.kernel.org, Dept_NX_Linux_NIC_Driver@qlogic.com Subject: [PATCH net-next 1/4] qlcnic: Fix potential NULL dereference Date: Tue, 2 Apr 2013 11:34:40 -0400 Message-Id: <1364916883-10109-2-git-send-email-rajesh.borundia@qlogic.com> X-Mailer: git-send-email 1.7.7 In-Reply-To: <1364916883-10109-1-git-send-email-rajesh.borundia@qlogic.com> References: <1364916883-10109-1-git-send-email-rajesh.borundia@qlogic.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org [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 Signed-off-by: Rajesh Borundia --- 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 ddc130b..253b3ac 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);