HID: amd_sfh: Fix potential NULL pointer dereference
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). [jkosina@suse.cz: rebase] Signed-off-by: Evgeny Novikov <novikov@ispras.ru> Acked-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
0c8fbaa553
commit
d46ef750ed
@ -251,6 +251,10 @@ static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rc = amd_sfh_hid_client_init(privdata);
|
||||||
|
if (rc)
|
||||||
|
return rc;
|
||||||
|
|
||||||
privdata->cl_data = devm_kzalloc(&pdev->dev, sizeof(struct amdtp_cl_data), GFP_KERNEL);
|
privdata->cl_data = devm_kzalloc(&pdev->dev, sizeof(struct amdtp_cl_data), GFP_KERNEL);
|
||||||
if (!privdata->cl_data)
|
if (!privdata->cl_data)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@ -261,7 +265,7 @@ static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *i
|
|||||||
|
|
||||||
mp2_select_ops(privdata);
|
mp2_select_ops(privdata);
|
||||||
|
|
||||||
return amd_sfh_hid_client_init(privdata);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __maybe_unused amd_mp2_pci_resume(struct device *dev)
|
static int __maybe_unused amd_mp2_pci_resume(struct device *dev)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user