diff mbox

[v2] mwifiex: fix possible NULL dereference

Message ID 1460461597-7309-1-git-send-email-sudipm.mukherjee@gmail.com
State Awaiting Upstream, archived
Delegated to: David Miller
Headers show

Commit Message

Sudip Mukherjee April 12, 2016, 11:46 a.m. UTC
From: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>

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.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
---
 drivers/net/wireless/marvell/mwifiex/pcie.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Arend van Spriel April 12, 2016, 11:50 a.m. UTC | #1
On 12-04-16 13:46, Sudip Mukherjee wrote:
> From: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
> 
> 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 <sudip.mukherjee@codethink.co.uk>
> ---
>  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);
>
Sudip Mukherjee April 12, 2016, 11:56 a.m. UTC | #2
On Tuesday 12 April 2016 05:20 PM, Arend van Spriel wrote:
>
>
> On 12-04-16 13:46, Sudip Mukherjee wrote:
>> From: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
>>
>> 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.

yes, and since all usage of pdev is inside the "if" block so it should 
not matter.

regards
sudip

>
> Regards,
> Arend
>
>> Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
>> ---
>>   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);
>>
diff mbox

Patch

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);