* sound/soc/sdca/sdca_functions.c:2083 find_sdca_filesets() warn: potentially one past the end of array 'fileset_entries[j]'
@ 2026-03-16 6:17 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-03-16 6:17 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Maciej Strozek <mstrozek@opensource.cirrus.com>
CC: Mark Brown <broonie@kernel.org>
CC: Bard Liao <yung-chuan.liao@linux.intel.com>
CC: Charles Keepax <ckeepax@opensource.cirrus.com>
CC: "Pierre-Louis Bossart" <pierre-louis.bossart@linux.dev>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f338e77383789c0cae23ca3d48adcc5e9e137e3c
commit: c4d096c3ca425562192a3626c30e82651d0f2c1c ASoC: SDCA: Add SDCA FDL data parsing
date: 5 months ago
:::::: branch date: 9 hours ago
:::::: commit date: 5 months ago
config: i386-randconfig-141-20260316 (https://download.01.org/0day-ci/archive/20260316/202603161443.vpLcJr2M-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9004-gb810ac53
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603161443.vpLcJr2M-lkp@intel.com/
smatch warnings:
sound/soc/sdca/sdca_functions.c:2083 find_sdca_filesets() warn: potentially one past the end of array 'fileset_entries[j]'
sound/soc/sdca/sdca_functions.c:2083 find_sdca_filesets() warn: potentially one past the end of array 'fileset_entries[j]'
vim +2083 sound/soc/sdca/sdca_functions.c
f87c2a27503312 Charles Keepax 2025-02-05 2012
c4d096c3ca4255 Maciej Strozek 2025-10-20 2013 static int find_sdca_filesets(struct device *dev, struct sdw_slave *sdw,
c4d096c3ca4255 Maciej Strozek 2025-10-20 2014 struct fwnode_handle *function_node,
c4d096c3ca4255 Maciej Strozek 2025-10-20 2015 struct sdca_function_data *function)
c4d096c3ca4255 Maciej Strozek 2025-10-20 2016 {
c4d096c3ca4255 Maciej Strozek 2025-10-20 2017 static const int mult_fileset = 3;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2018 char fileset_name[SDCA_PROPERTY_LENGTH];
c4d096c3ca4255 Maciej Strozek 2025-10-20 2019 u32 *filesets_list __free(kfree) = NULL;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2020 struct sdca_fdl_set *sets;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2021 int num_sets;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2022 int i, j;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2023
c4d096c3ca4255 Maciej Strozek 2025-10-20 2024 num_sets = fwnode_property_count_u32(function_node,
c4d096c3ca4255 Maciej Strozek 2025-10-20 2025 "mipi-sdca-file-set-id-list");
c4d096c3ca4255 Maciej Strozek 2025-10-20 2026 if (num_sets == 0 || num_sets == -EINVAL) {
c4d096c3ca4255 Maciej Strozek 2025-10-20 2027 return 0;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2028 } else if (num_sets < 0) {
c4d096c3ca4255 Maciej Strozek 2025-10-20 2029 dev_err(dev, "%pfwP: failed to read file set list: %d\n",
c4d096c3ca4255 Maciej Strozek 2025-10-20 2030 function_node, num_sets);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2031 return num_sets;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2032 }
c4d096c3ca4255 Maciej Strozek 2025-10-20 2033
c4d096c3ca4255 Maciej Strozek 2025-10-20 2034 filesets_list = kcalloc(num_sets, sizeof(u32), GFP_KERNEL);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2035 if (!filesets_list)
c4d096c3ca4255 Maciej Strozek 2025-10-20 2036 return -ENOMEM;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2037
c4d096c3ca4255 Maciej Strozek 2025-10-20 2038 fwnode_property_read_u32_array(function_node, "mipi-sdca-file-set-id-list",
c4d096c3ca4255 Maciej Strozek 2025-10-20 2039 filesets_list, num_sets);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2040
c4d096c3ca4255 Maciej Strozek 2025-10-20 2041 sets = devm_kcalloc(dev, num_sets, sizeof(struct sdca_fdl_set), GFP_KERNEL);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2042 if (!sets)
c4d096c3ca4255 Maciej Strozek 2025-10-20 2043 return -ENOMEM;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2044
c4d096c3ca4255 Maciej Strozek 2025-10-20 2045 for (i = 0; i < num_sets; i++) {
c4d096c3ca4255 Maciej Strozek 2025-10-20 2046 u32 *fileset_entries __free(kfree) = NULL;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2047 struct sdca_fdl_set *set = &sets[i];
c4d096c3ca4255 Maciej Strozek 2025-10-20 2048 struct sdca_fdl_file *files;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2049 int num_files, num_entries;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2050
c4d096c3ca4255 Maciej Strozek 2025-10-20 2051 snprintf(fileset_name, sizeof(fileset_name),
c4d096c3ca4255 Maciej Strozek 2025-10-20 2052 "mipi-sdca-file-set-id-0x%X", filesets_list[i]);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2053
c4d096c3ca4255 Maciej Strozek 2025-10-20 2054 num_entries = fwnode_property_count_u32(function_node, fileset_name);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2055 if (num_entries <= 0) {
c4d096c3ca4255 Maciej Strozek 2025-10-20 2056 dev_err(dev, "%pfwP: file set %d missing entries: %d\n",
c4d096c3ca4255 Maciej Strozek 2025-10-20 2057 function_node, filesets_list[i], num_entries);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2058 return -EINVAL;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2059 } else if (num_entries % mult_fileset != 0) {
c4d096c3ca4255 Maciej Strozek 2025-10-20 2060 dev_err(dev, "%pfwP: file set %d files not multiple of %d\n",
c4d096c3ca4255 Maciej Strozek 2025-10-20 2061 function_node, filesets_list[i], mult_fileset);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2062 return -EINVAL;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2063 }
c4d096c3ca4255 Maciej Strozek 2025-10-20 2064
c4d096c3ca4255 Maciej Strozek 2025-10-20 2065 dev_info(dev, "fileset: %#x\n", filesets_list[i]);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2066
c4d096c3ca4255 Maciej Strozek 2025-10-20 2067 files = devm_kcalloc(dev, num_entries / mult_fileset,
c4d096c3ca4255 Maciej Strozek 2025-10-20 2068 sizeof(struct sdca_fdl_file), GFP_KERNEL);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2069 if (!files)
c4d096c3ca4255 Maciej Strozek 2025-10-20 2070 return -ENOMEM;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2071
c4d096c3ca4255 Maciej Strozek 2025-10-20 2072 fileset_entries = kcalloc(num_entries, sizeof(u32), GFP_KERNEL);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2073 if (!fileset_entries)
c4d096c3ca4255 Maciej Strozek 2025-10-20 2074 return -ENOMEM;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2075
c4d096c3ca4255 Maciej Strozek 2025-10-20 2076 fwnode_property_read_u32_array(function_node, fileset_name,
c4d096c3ca4255 Maciej Strozek 2025-10-20 2077 fileset_entries, num_entries);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2078
c4d096c3ca4255 Maciej Strozek 2025-10-20 2079 for (j = 0, num_files = 0; j < num_entries; num_files++) {
c4d096c3ca4255 Maciej Strozek 2025-10-20 2080 struct sdca_fdl_file *file = &files[num_files];
c4d096c3ca4255 Maciej Strozek 2025-10-20 2081
c4d096c3ca4255 Maciej Strozek 2025-10-20 2082 file->vendor_id = fileset_entries[j++];
c4d096c3ca4255 Maciej Strozek 2025-10-20 @2083 file->file_id = fileset_entries[j++];
c4d096c3ca4255 Maciej Strozek 2025-10-20 2084 file->fdl_offset = fileset_entries[j++];
c4d096c3ca4255 Maciej Strozek 2025-10-20 2085
c4d096c3ca4255 Maciej Strozek 2025-10-20 2086 dev_info(dev, "file: %#x, vendor: %#x, offset: %#x\n",
c4d096c3ca4255 Maciej Strozek 2025-10-20 2087 file->file_id, file->vendor_id, file->fdl_offset);
c4d096c3ca4255 Maciej Strozek 2025-10-20 2088 }
c4d096c3ca4255 Maciej Strozek 2025-10-20 2089
c4d096c3ca4255 Maciej Strozek 2025-10-20 2090 set->id = filesets_list[i];
c4d096c3ca4255 Maciej Strozek 2025-10-20 2091 set->num_files = num_files;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2092 set->files = files;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2093 }
c4d096c3ca4255 Maciej Strozek 2025-10-20 2094
c4d096c3ca4255 Maciej Strozek 2025-10-20 2095 function->fdl_data.swft = sdw->sdca_data.swft;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2096 function->fdl_data.num_sets = num_sets;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2097 function->fdl_data.sets = sets;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2098
c4d096c3ca4255 Maciej Strozek 2025-10-20 2099 return 0;
c4d096c3ca4255 Maciej Strozek 2025-10-20 2100 }
c4d096c3ca4255 Maciej Strozek 2025-10-20 2101
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-03-16 6:18 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-16 6:17 sound/soc/sdca/sdca_functions.c:2083 find_sdca_filesets() warn: potentially one past the end of array 'fileset_entries[j]' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.