فهرست منبع

msm: camera: cdm: Fix of_match table null entry

global-out-of-bounds issue on:
msm_cam_hw_cdm_dt_match
Due to no null-terminating struct in the array.

CRs-Fixed: 2883523
Change-Id: I36e4811f239993e1e6de158df959157217c28bfe
Signed-off-by: Karthik Jayakumar <[email protected]>
Karthik Jayakumar 4 سال پیش
والد
کامیت
8abb54dcb1
2فایلهای تغییر یافته به همراه5 افزوده شده و 5 حذف شده
  1. 1 0
      drivers/cam_cdm/cam_cdm_hw_core.c
  2. 4 5
      drivers/cam_utils/cam_compat.c

+ 1 - 0
drivers/cam_cdm/cam_cdm_hw_core.c

@@ -75,6 +75,7 @@ static const struct of_device_id msm_cam_hw_cdm_dt_match[] = {
 		.compatible = CAM_HW_CDM_OPE_NAME_2_1,
 		.data = &cam_cdm_2_1_reg_offset,
 	},
+	{},
 };
 
 static enum cam_cdm_id cam_hw_cdm_get_id_by_name(char *name)

+ 4 - 5
drivers/cam_utils/cam_compat.c

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (c) 2014-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
  */
 
 #include <linux/dma-mapping.h>
@@ -214,6 +214,7 @@ int camera_component_match_add_drivers(struct device *master_dev,
 {
 	int i, rc = 0;
 	struct platform_device *pdev = NULL;
+	struct device *start_dev = NULL, *match_dev = NULL;
 
 	if (!master_dev || !match_list) {
 		CAM_ERR(CAM_UTIL, "Invalid parameters for component match add");
@@ -230,14 +231,12 @@ int camera_component_match_add_drivers(struct device *master_dev,
 		struct device_driver *drv = &cam_component_drivers[i]->driver;
 		void *drv_ptr = (void *)drv;
 #endif
-		struct device *start_dev = NULL, *match_dev;
-
+		start_dev = NULL;
 		while ((match_dev = bus_find_device(&platform_bus_type,
 			start_dev, drv_ptr, &camera_platform_compare_dev))) {
 			put_device(start_dev);
 			pdev = to_platform_device(match_dev);
-			CAM_DBG(CAM_UTIL, "Adding matched component:%s",
-				pdev->name);
+			CAM_DBG(CAM_UTIL, "Adding matched component:%s", pdev->name);
 			component_match_add(master_dev, match_list,
 				camera_component_compare_dev, match_dev);
 			start_dev = match_dev;