diff mbox series

AMD_SFH: Fix potential NULL pointer dereference

Message ID 20210601163801.17848-1-novikov@ispras.ru
State New
Headers show
Series AMD_SFH: Fix potential NULL pointer dereference | expand

Commit Message

Evgeny Novikov June 1, 2021, 4:38 p.m. UTC
devm_add_action_or_reset() can suddenly invoke amd_mp2_pci_remove() at
registration that will cause NULL pointer dereference since
corresponding data is not initialized yet. The patch moves
initialization of data before devm_add_action_or_reset().

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Evgeny Novikov <novikov@ispras.ru>
---
 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Jiri Kosina Sept. 15, 2021, 2:58 p.m. UTC | #1
On Tue, 1 Jun 2021, Evgeny Novikov wrote:

> devm_add_action_or_reset() can suddenly invoke amd_mp2_pci_remove() at

> registration that will cause NULL pointer dereference since

> corresponding data is not initialized yet. The patch moves

> initialization of data before devm_add_action_or_reset().

> 

> Found by Linux Driver Verification project (linuxtesting.org).

> 

> Signed-off-by: Evgeny Novikov <novikov@ispras.ru>


Nehal, Basavaraj, could you please Review/Ack this one?

Thanks,

-- 
Jiri Kosina
SUSE Labs
Nehal-bakulchandra Shah Sept. 15, 2021, 5:32 p.m. UTC | #2
Adding Basavaraj

-----Original Message-----
From: Jiri Kosina <jikos@kernel.org> 

Sent: Wednesday, September 15, 2021 8:28 PM
To: Evgeny Novikov <novikov@ispras.ru>
Cc: Shah, Nehal-bakulchandra <Nehal-bakulchandra.Shah@amd.com>; Sandeep Singh <sandeep.singh@amd.com>; Benjamin Tissoires <benjamin.tissoires@redhat.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org; ldv-project@linuxtesting.org
Subject: Re: [PATCH] AMD_SFH: Fix potential NULL pointer dereference

On Tue, 1 Jun 2021, Evgeny Novikov wrote:

> devm_add_action_or_reset() can suddenly invoke amd_mp2_pci_remove() at 

> registration that will cause NULL pointer dereference since 

> corresponding data is not initialized yet. The patch moves 

> initialization of data before devm_add_action_or_reset().

> 

> Found by Linux Driver Verification project (linuxtesting.org).

> 

> Signed-off-by: Evgeny Novikov <novikov@ispras.ru>


Nehal, Basavaraj, could you please Review/Ack this one?

Thanks,

--
Jiri Kosina
SUSE Labs
Basavaraj Natikar Sept. 16, 2021, 5:59 a.m. UTC | #3
On 9/15/2021 11:02 PM, Shah, Nehal-bakulchandra wrote:
> Adding Basavaraj

>

> -----Original Message-----

> From: Jiri Kosina <jikos@kernel.org> 

> Sent: Wednesday, September 15, 2021 8:28 PM

> To: Evgeny Novikov <novikov@ispras.ru>

> Cc: Shah, Nehal-bakulchandra <Nehal-bakulchandra.Shah@amd.com>; Sandeep Singh <sandeep.singh@amd.com>; Benjamin Tissoires <benjamin.tissoires@redhat.com>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org; ldv-project@linuxtesting.org

> Subject: Re: [PATCH] AMD_SFH: Fix potential NULL pointer dereference

>

> On Tue, 1 Jun 2021, Evgeny Novikov wrote:

>

>> devm_add_action_or_reset() can suddenly invoke amd_mp2_pci_remove() at 

>> registration that will cause NULL pointer dereference since 

>> corresponding data is not initialized yet. The patch moves 

>> initialization of data before devm_add_action_or_reset().

>>

>> Found by Linux Driver Verification project (linuxtesting.org).

>>

>> Signed-off-by: Evgeny Novikov <novikov@ispras.ru>

> Nehal, Basavaraj, could you please Review/Ack this one?

>

Patch looks good to me. Acked-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
Jiri Kosina Sept. 16, 2021, 7:15 a.m. UTC | #4
On Tue, 1 Jun 2021, Evgeny Novikov wrote:

> devm_add_action_or_reset() can suddenly invoke amd_mp2_pci_remove() at

> registration that will cause NULL pointer dereference since

> corresponding data is not initialized yet. The patch moves

> initialization of data before devm_add_action_or_reset().

> 

> Found by Linux Driver Verification project (linuxtesting.org).

> 

> Signed-off-by: Evgeny Novikov <novikov@ispras.ru>


Applied, thank you.

-- 
Jiri Kosina
SUSE Labs
diff mbox series

Patch

diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
index ddecc84fd6f0..8394565c4d01 100644
--- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
+++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
@@ -160,11 +160,16 @@  static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i
 		rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
 		return rc;
 	}
+
+	rc = amd_sfh_hid_client_init(privdata);
+	if (rc)
+		return rc;
+
 	rc = devm_add_action_or_reset(&pdev->dev, amd_mp2_pci_remove, privdata);
 	if (rc)
 		return rc;
 
-	return amd_sfh_hid_client_init(privdata);
+	return 0;
 }
 
 static const struct pci_device_id amd_mp2_pci_tbl[] = {