mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
kernel: nvidia-oot: Fix Linux KMD coverity defect
Fix STR31-C ad STR07-C for - drivers/media/platform/tegra/cdi/cdi_gpio.c - drivers/media/platform/tegra/cdi/cdi_mgr.c Jira CAMERASW-30856 Change-Id: I40d2c1b47b83d2dbc6102229dd67225e1a9156ab Signed-off-by: Zhiyuan Wang <zhiwang@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3281931 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Frank Chen <frankc@nvidia.com> Reviewed-by: Ajith Kumar <ajithk@nvidia.com> GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com> Reviewed-by: Semi Malinen <smalinen@nvidia.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
// SPDX-FileCopyrightText: Copyright (c) 2017-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
// SPDX-FileCopyrightText: Copyright (c) 2017-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
|
|
||||||
#include <nvidia/conftest.h>
|
#include <nvidia/conftest.h>
|
||||||
|
|
||||||
@@ -52,12 +52,11 @@ static struct gpio_chip *cdi_gpio_get_chip(struct platform_device *pdev,
|
|||||||
#endif
|
#endif
|
||||||
char name[MAX_STR_SIZE];
|
char name[MAX_STR_SIZE];
|
||||||
|
|
||||||
if (strlen(pd->gpio_prnt_chip) > MAX_STR_SIZE) {
|
if (strscpy(name, pd->gpio_prnt_chip, MAX_STR_SIZE) < 0) {
|
||||||
dev_err(&pdev->dev, "%s: gpio chip name is too long: %s\n",
|
dev_err(&pdev->dev, "%s: gpio chip name is too long: %.*s\n",
|
||||||
__func__, pd->gpio_prnt_chip);
|
__func__, MAX_STR_SIZE, pd->gpio_prnt_chip);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
strcpy(name, pd->gpio_prnt_chip);
|
|
||||||
|
|
||||||
#if defined(NV_GPIO_DEVICE_FIND_PRESENT) && \
|
#if defined(NV_GPIO_DEVICE_FIND_PRESENT) && \
|
||||||
defined(NV_GPIO_DEVICE_GET_CHIP_PRESENT) /* Linux 6.7 */
|
defined(NV_GPIO_DEVICE_GET_CHIP_PRESENT) /* Linux 6.7 */
|
||||||
|
|||||||
@@ -498,7 +498,20 @@ static int __cdi_create_dev(
|
|||||||
struct cdi_mgr_priv *cdi_mgr, struct cdi_mgr_new_dev *new_dev)
|
struct cdi_mgr_priv *cdi_mgr, struct cdi_mgr_new_dev *new_dev)
|
||||||
{
|
{
|
||||||
struct cdi_mgr_client *cdi_dev;
|
struct cdi_mgr_client *cdi_dev;
|
||||||
struct i2c_board_info brd;
|
struct i2c_board_info brd = {
|
||||||
|
.type = "cdi-dev",
|
||||||
|
.flags = 0U,
|
||||||
|
.addr = 0U,
|
||||||
|
.dev_name = NULL,
|
||||||
|
.platform_data = NULL,
|
||||||
|
.of_node = NULL,
|
||||||
|
.fwnode = NULL,
|
||||||
|
.swnode = NULL,
|
||||||
|
.resources = NULL,
|
||||||
|
.num_resources = 0U,
|
||||||
|
.irq = 0
|
||||||
|
};
|
||||||
|
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
if (new_dev->addr >= 0x80 || new_dev->drv_name[0] == '\0' ||
|
if (new_dev->addr >= 0x80 || new_dev->drv_name[0] == '\0' ||
|
||||||
@@ -542,8 +555,6 @@ static int __cdi_create_dev(
|
|||||||
mutex_init(&cdi_dev->mutex);
|
mutex_init(&cdi_dev->mutex);
|
||||||
INIT_LIST_HEAD(&cdi_dev->list);
|
INIT_LIST_HEAD(&cdi_dev->list);
|
||||||
|
|
||||||
memset(&brd, 0, sizeof(brd));
|
|
||||||
strncpy(brd.type, "cdi-dev", sizeof(brd.type));
|
|
||||||
brd.addr = cdi_dev->cfg.addr;
|
brd.addr = cdi_dev->cfg.addr;
|
||||||
brd.platform_data = &cdi_dev->pdata;
|
brd.platform_data = &cdi_dev->pdata;
|
||||||
cdi_dev->client = i2c_new_client_device(cdi_mgr->adap, &brd);
|
cdi_dev->client = i2c_new_client_device(cdi_mgr->adap, &brd);
|
||||||
|
|||||||
Reference in New Issue
Block a user