From 956c7dea314217e3e021a78be838ebdae3c2b59e Mon Sep 17 00:00:00 2001 From: Prateek Patel Date: Mon, 9 May 2022 05:37:08 +0000 Subject: [PATCH] drivers: dla: fix cert_c defect Add check for return value of snprintf(). CID 343144 CID 441285 Bug 3512545 Change-Id: I2039b3a71e821d70d47bb42b993d0267e5faaffd Signed-off-by: Prateek Patel Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2709584 Reviewed-by: svcacv Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-cert Reviewed-by: Sachin Nikam GVS: Gerrit_Virtual_Submit --- drivers/video/tegra/host/nvdla/nvdla_ioctl.c | 28 +++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/drivers/video/tegra/host/nvdla/nvdla_ioctl.c b/drivers/video/tegra/host/nvdla/nvdla_ioctl.c index cc0cea98..5902b1e8 100644 --- a/drivers/video/tegra/host/nvdla/nvdla_ioctl.c +++ b/drivers/video/tegra/host/nvdla/nvdla_ioctl.c @@ -430,9 +430,14 @@ static int nvdla_send_emu_signal_fences(struct nvdla_emu_task *task, info.id, info.thresh); /* create fence name format example: nvdla0_1_fence */ - snprintf(fence_name, sizeof(fence_name), + err = snprintf(fence_name, sizeof(fence_name), "%s_%d_%d_prefence", dev_name(&dla_pdev->dev), task->prefences[i].syncpoint_index, i); + if (err < 0) { + nvdla_dbg_err(dla_pdev, + "encoding error: %d\n", err); + goto fail; + } err = nvhost_fence_create_fd(host_pdev, &info, 1, fence_name, @@ -472,9 +477,14 @@ static int nvdla_send_emu_signal_fences(struct nvdla_emu_task *task, info.id, info.thresh); /* create fence name format example: nvdla0_1_fence */ - snprintf(fence_name, sizeof(fence_name), + err = snprintf(fence_name, sizeof(fence_name), "%s_%d_%d_postfence", dev_name(&dla_pdev->dev), task->postfences[i].syncpoint_index, i); + if (err < 0) { + nvdla_dbg_err(dla_pdev, + "encoding error: %d\n", err); + goto fail; + } err = nvhost_fence_create_fd(host_pdev, &info, 1, fence_name, @@ -534,9 +544,14 @@ static int nvdla_update_signal_fences(struct nvdla_task *task, info.id, info.thresh); /* create fence name format example: nvdla0_1_fence */ - snprintf(fence_name, sizeof(fence_name), + err = snprintf(fence_name, sizeof(fence_name), "%s_%d_%d_prefence", dev_name(&dla_pdev->dev), task->prefences[i].syncpoint_index, i); + if (err < 0) { + nvdla_dbg_err(dla_pdev, + "encoding error: %d\n", err); + goto fail; + } err = nvhost_fence_create_fd(host_pdev, &info, 1, fence_name, @@ -576,9 +591,14 @@ static int nvdla_update_signal_fences(struct nvdla_task *task, info.id, info.thresh); /* create fence name format example: nvdla0_1_fence */ - snprintf(fence_name, sizeof(fence_name), + err = snprintf(fence_name, sizeof(fence_name), "%s_%d_%d_postfence", dev_name(&dla_pdev->dev), task->postfences[i].syncpoint_index, i); + if (err < 0) { + nvdla_dbg_err(dla_pdev, + "encoding error: %d\n", err); + goto fail; + } err = nvhost_fence_create_fd(host_pdev, &info, 1, fence_name,