Skip to content

Commit ececf8e

Browse files
Henry Martingregkh
Henry Martin
authored andcommitted
arcnet: Add NULL check in com20020pci_probe()
[ Upstream commit fda8c491db2a90ff3e6fbbae58e495b4ddddeca3 ] devm_kasprintf() returns NULL when memory allocation fails. Currently, com20020pci_probe() does not check for this case, which results in a NULL pointer dereference. Add NULL check after devm_kasprintf() to prevent this issue and ensure no resources are left allocated. Fixes: 6b17a59 ("arcnet: restoring support for multiple Sohard Arcnet cards") Signed-off-by: Henry Martin <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
1 parent fa2f9fc commit ececf8e

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

drivers/net/arcnet/com20020-pci.c

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,18 +250,33 @@ static int com20020pci_probe(struct pci_dev *pdev,
250250
card->tx_led.default_trigger = devm_kasprintf(&pdev->dev,
251251
GFP_KERNEL, "arc%d-%d-tx",
252252
dev->dev_id, i);
253+
if (!card->tx_led.default_trigger) {
254+
ret = -ENOMEM;
255+
goto err_free_arcdev;
256+
}
253257
card->tx_led.name = devm_kasprintf(&pdev->dev, GFP_KERNEL,
254258
"pci:green:tx:%d-%d",
255259
dev->dev_id, i);
256-
260+
if (!card->tx_led.name) {
261+
ret = -ENOMEM;
262+
goto err_free_arcdev;
263+
}
257264
card->tx_led.dev = &dev->dev;
258265
card->recon_led.brightness_set = led_recon_set;
259266
card->recon_led.default_trigger = devm_kasprintf(&pdev->dev,
260267
GFP_KERNEL, "arc%d-%d-recon",
261268
dev->dev_id, i);
269+
if (!card->recon_led.default_trigger) {
270+
ret = -ENOMEM;
271+
goto err_free_arcdev;
272+
}
262273
card->recon_led.name = devm_kasprintf(&pdev->dev, GFP_KERNEL,
263274
"pci:red:recon:%d-%d",
264275
dev->dev_id, i);
276+
if (!card->recon_led.name) {
277+
ret = -ENOMEM;
278+
goto err_free_arcdev;
279+
}
265280
card->recon_led.dev = &dev->dev;
266281

267282
ret = devm_led_classdev_register(&pdev->dev, &card->tx_led);

0 commit comments

Comments
 (0)