Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933442AbcDLLut (ORCPT ); Tue, 12 Apr 2016 07:50:49 -0400 Received: from mail-wm0-f52.google.com ([74.125.82.52]:34089 "EHLO mail-wm0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932320AbcDLLur (ORCPT ); Tue, 12 Apr 2016 07:50:47 -0400 Subject: Re: [PATCH v2] mwifiex: fix possible NULL dereference To: Sudip Mukherjee , Amitkumar Karwar , Nishant Sarmukadam , Kalle Valo References: <1460461597-7309-1-git-send-email-sudipm.mukherjee@gmail.com> Cc: linux-kernel@vger.kernel.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Sudip Mukherjee , Christian Daudt From: Arend van Spriel Message-ID: <570CE113.20200@broadcom.com> Date: Tue, 12 Apr 2016 13:50:43 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <1460461597-7309-1-git-send-email-sudipm.mukherjee@gmail.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1223 Lines: 37 On 12-04-16 13:46, Sudip Mukherjee wrote: > From: Sudip Mukherjee > > We have a check for card just after dereferencing it. So if it is NULL > we have already dereferenced it before its check. Lets dereference it > after checking card for NULL. And you are changing the scope of the pdev variable. Regards, Arend > Signed-off-by: Sudip Mukherjee > --- > drivers/net/wireless/marvell/mwifiex/pcie.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c > index edf8b07..d4db9db 100644 > --- a/drivers/net/wireless/marvell/mwifiex/pcie.c > +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c > @@ -2884,10 +2884,11 @@ static void mwifiex_unregister_dev(struct mwifiex_adapter *adapter) > { > struct pcie_service_card *card = adapter->card; > const struct mwifiex_pcie_card_reg *reg; > - struct pci_dev *pdev = card->dev; > int i; > > if (card) { > + struct pci_dev *pdev = card->dev; > + > if (card->msix_enable) { > for (i = 0; i < MWIFIEX_NUM_MSIX_VECTORS; i++) > synchronize_irq(card->msix_entries[i].vector); >