From 7835064bc30a8d734aef7b127ac6b0bc9f554f65 Mon Sep 17 00:00:00 2001 From: Viswanath L Date: Mon, 7 Feb 2022 13:01:13 +0530 Subject: [PATCH] nvadsp: Add err check in ADSP ELF string copy Error check is added to prevent out-of-bound access when copying ADSP ELF string from DT. Fixes Coverity defect CID 10132209. Bug 3461002 Bug 200746669 Bug 200773359 Change-Id: I56beabcf8d78aed560cde523dee0429acd784dc9 Signed-off-by: Viswanath L Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2664843 Reviewed-by: svcacv Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-cert Reviewed-by: svc_kernel_abi Reviewed-by: Sachin Nikam GVS: Gerrit_Virtual_Submit --- drivers/platform/tegra/nvadsp/dev.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/platform/tegra/nvadsp/dev.c b/drivers/platform/tegra/nvadsp/dev.c index 7f718cda..53eac2db 100644 --- a/drivers/platform/tegra/nvadsp/dev.c +++ b/drivers/platform/tegra/nvadsp/dev.c @@ -289,9 +289,14 @@ static int __init nvadsp_parse_dt(struct platform_device *pdev) } if (!of_property_read_string(dev->of_node, - "nvidia,adsp_elf", &adsp_elf)) - strcpy(drv_data->adsp_elf, adsp_elf); - else + "nvidia,adsp_elf", &adsp_elf)) { + if (strlen(adsp_elf) < MAX_FW_STR) + strcpy(drv_data->adsp_elf, adsp_elf); + else { + dev_err(dev, "invalid string in nvidia,adsp_elf\n"); + return -EINVAL; + } + } else strcpy(drv_data->adsp_elf, NVADSP_ELF); drv_data->adsp_unit_fpga = of_property_read_bool(dev->of_node,