From 5ad213c183db2ae34b4d7b693cffd5bd145836e3 Mon Sep 17 00:00:00 2001 From: mijia Date: Thu, 6 Mar 2025 02:44:42 +0000 Subject: [PATCH] kernel: nvidia-oot: Fix Linux KMD coverity defects Fix INT32-C INT32-Cand INT08-C coverity defects for cdi_mgr.c and tegracam_ctrls.c. JIRA CAMERASW-32529 Change-Id: I97f915f94264d78ae8e493874ccf889c9183fc93 Signed-off-by: mijia Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3314543 Reviewed-by: Sudhir Vyas Reviewed-by: Ankur Pawar Tested-by: Patrick Young Reviewed-by: Frank Chen GVS: buildbot_gerritrpt Reviewed-by: Ryan Li --- drivers/media/platform/tegra/camera/tegracam_ctrls.c | 11 ++++++++++- drivers/media/platform/tegra/cdi/cdi_mgr.c | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/tegra/camera/tegracam_ctrls.c b/drivers/media/platform/tegra/camera/tegracam_ctrls.c index 1ef42e71..4d72c140 100644 --- a/drivers/media/platform/tegra/camera/tegracam_ctrls.c +++ b/drivers/media/platform/tegra/camera/tegracam_ctrls.c @@ -1085,6 +1085,7 @@ int tegracam_ctrl_handler_init(struct tegracam_ctrl_handler *handler) const struct tegracam_ctrl_ops *ops = handler->ctrl_ops; const u32 *cids = NULL; u32 numctrls = 0; + u32 cid = 0; u8 compound_control_default_byte_value = 0xff; int i, j; int err = 0; @@ -1107,7 +1108,15 @@ int tegracam_ctrl_handler_init(struct tegracam_ctrl_handler *handler) err = v4l2_ctrl_handler_init(&handler->ctrl_handler, numctrls); for (i = 0, j = 0; i < numctrls; i++) { - u32 cid = i < ops->numctrls ? cids[i] : tegracam_def_cids[j++]; + if (i < ops->numctrls) { + cid = cids[i]; + } else { + cid = tegracam_def_cids[j]; + if (check_add_overflow(j, 1, &j)) { + dev_err(dev, "Error wrapped in loop\n"); + return -EINVAL; + } + } int index = tegracam_get_ctrl_index(cid); int size = 0; if (index >= ARRAY_SIZE(ctrl_cfg_list)) { diff --git a/drivers/media/platform/tegra/cdi/cdi_mgr.c b/drivers/media/platform/tegra/cdi/cdi_mgr.c index 3624e164..9dc1f327 100644 --- a/drivers/media/platform/tegra/cdi/cdi_mgr.c +++ b/drivers/media/platform/tegra/cdi/cdi_mgr.c @@ -1805,7 +1805,7 @@ static int cdi_mgr_probe(struct platform_device *pdev) if (root_node) { model = of_get_property(root_node, "model", NULL); dev_info(&pdev->dev, "platform name: %s\n", model); - if (!strcmp(model, "p3898-0010")) + if (model != NULL && !strcmp(model, "p3898-0010")) cdi_mgr->isP3898 = true; }