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

Commit 648a163c authored by Vladislav Efanov's avatar Vladislav Efanov Committed by Greg Kroah-Hartman
Browse files

usb: dwc3: qcom: Fix potential memory leak



[ Upstream commit 097fb3ee710d4de83b8d4f5589e8ee13e0f0541e ]

Function dwc3_qcom_probe() allocates memory for resource structure
which is pointed by parent_res pointer. This memory is not
freed. This leads to memory leak. Use stack memory to prevent
memory leak.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 2bc02355 ("usb: dwc3: qcom: Add support for booting with ACPI")
Signed-off-by: default avatarVladislav Efanov <VEfanov@ispras.ru>
Acked-by: default avatarShawn Guo <shawn.guo@linaro.org>
Link: https://lore.kernel.org/r/20230517172518.442591-1-VEfanov@ispras.ru


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent d485150c
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -574,6 +574,7 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
	struct device		*dev = &pdev->dev;
	struct dwc3_qcom	*qcom;
	struct resource		*res, *parent_res = NULL;
	struct resource		local_res;
	int			ret, i;
	bool			ignore_pipe_clk;

@@ -624,9 +625,8 @@ static int dwc3_qcom_probe(struct platform_device *pdev)
	if (np) {
		parent_res = res;
	} else {
		parent_res = kmemdup(res, sizeof(struct resource), GFP_KERNEL);
		if (!parent_res)
			return -ENOMEM;
		memcpy(&local_res, res, sizeof(struct resource));
		parent_res = &local_res;

		parent_res->start = res->start +
			qcom->acpi_pdata->qscratch_base_offset;