linux: kmd: static analysis S01/08 part 4

Under the following path:
- drivers/media/platform/tegra/camera/fusa-capture/capture-isp.c
- drivers/media/platform/tegra/camera/camera_common.c
- drivers/media/platform/tegra/camera/csi/csi.c

Jira CAMERASW-30848

Change-Id: If9d04481371f28d6fe962291f1f950f6b31aa635
Signed-off-by: Junsheng Chen <junshengc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3281688
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Zhiyuan Wang <zhiwang@nvidia.com>
Reviewed-by: Sumeet Gupta <sumeetg@nvidia.com>
Reviewed-by: Frank Chen <frankc@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Ankur Pawar <ankurp@nvidia.com>
This commit is contained in:
Junsheng Chen
2025-01-10 05:52:48 +00:00
committed by Jon Hunter
parent 2b06fe0a29
commit 6fb5af66eb
2 changed files with 24 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
/*
* NVIDIA Tegra CSI Device
*/
@@ -1054,8 +1054,9 @@ static int csi_parse_dt(struct tegra_csi_device *csi,
if (strncmp(node->name, "nvcsi", 5)) {
node = of_find_node_by_name(node, "nvcsi");
if (sizeof(csi->devname) >= sizeof("nvcsi")) {
strncpy(csi->devname, "nvcsi", 6);
if (strscpy(csi->devname, "nvcsi", 6) < 0) {
dev_err(csi->dev, "Name too long.\n");
return -EINVAL;
}
}

View File

@@ -1907,14 +1907,28 @@ static uint32_t isp_capture_get_num_progress(
{
struct isp_desc_rec *capture_desc_ctx =
&chan->capture_data->capture_desc_ctx;
struct isp_capture_descriptor *desc = (struct isp_capture_descriptor *)
(capture_desc_ctx->requests.va +
req->buffer_index * capture_desc_ctx->request_size);
struct isp_capture_descriptor *desc = NULL;
uint16_t sliceHeight = 0U;
uint16_t height = 0U;
uint32_t desc_offset = 0U;
uint16_t slice_hight_sub = 1U;
uint16_t adjust_slice_height = 0U;
uint16_t adjust_height = 0U;
uint16_t sliceHeight = desc->surface_configs.slice_height;
uint16_t height = desc->surface_configs.mr_height;
if (check_mul_overflow(req->buffer_index, capture_desc_ctx->request_size, &desc_offset))
return 0;
return ((height + (sliceHeight - 1U)) / sliceHeight);
desc = (struct isp_capture_descriptor *)(capture_desc_ctx->requests.va + desc_offset);
sliceHeight = desc->surface_configs.slice_height;
height = desc->surface_configs.mr_height;
if (check_sub_overflow(sliceHeight, slice_hight_sub, &adjust_slice_height))
return 0;
if (check_add_overflow(height, adjust_slice_height, &adjust_height))
return 0;
return (adjust_height / sliceHeight);
}
int isp_capture_request(