Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94912e8d authored by Gustavo A. R. Silva's avatar Gustavo A. R. Silva Committed by Stefan Schmidt
Browse files

ieee802154: mcr20a: Fix memory leak in mcr20a_probe



Free allocated memory for pdata before return.

Addresses-Coverity-ID: 1466096 ("Resource leak")
Fixes: 8c6ad9cc ("ieee802154: Add NXP MCR20A IEEE 802.15.4 transceiver driver")
Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: default avatarXue Liu <liuxuenetmail@gmail.com>
Signed-off-by: default avatarStefan Schmidt <stefan@osg.samsung.com>
parent aa8f8778
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1267,7 +1267,7 @@ mcr20a_probe(struct spi_device *spi)
	ret = mcr20a_get_platform_data(spi, pdata);
	if (ret < 0) {
		dev_crit(&spi->dev, "mcr20a_get_platform_data failed.\n");
		return ret;
		goto free_pdata;
	}

	/* init reset gpio */
@@ -1275,7 +1275,7 @@ mcr20a_probe(struct spi_device *spi)
		ret = devm_gpio_request_one(&spi->dev, pdata->rst_gpio,
					    GPIOF_OUT_INIT_HIGH, "reset");
		if (ret)
			return ret;
			goto free_pdata;
	}

	/* reset mcr20a */
@@ -1291,7 +1291,8 @@ mcr20a_probe(struct spi_device *spi)
	hw = ieee802154_alloc_hw(sizeof(*lp), &mcr20a_hw_ops);
	if (!hw) {
		dev_crit(&spi->dev, "ieee802154_alloc_hw failed\n");
		return -ENOMEM;
		ret = -ENOMEM;
		goto free_pdata;
	}

	/* init mcr20a local data */
@@ -1366,6 +1367,8 @@ mcr20a_probe(struct spi_device *spi)

free_dev:
	ieee802154_free_hw(lp->hw);
free_pdata:
	kfree(pdata);

	return ret;
}