CC: [email protected] CC: [email protected] BCC: [email protected] CC: Linux Memory Management List <[email protected]> TO: Jiri Pirko <[email protected]> CC: Ido Schimmel <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: e7d6987e09a328d4a949701db40ef63fbb970670 commit: b217127e5e4ee0ecfce7c5f84cfe082238123bda [3882/5845] mlxsw: core_linecards: Add line card objects and implement provisioning :::::: branch date: 4 days ago :::::: commit date: 8 days ago config: riscv-randconfig-c006-20220424 (https://download.01.org/0day-ci/archive/20220426/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 1cddcfdc3c683b393df1a5c9063252eb60e52818) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=b217127e5e4ee0ecfce7c5f84cfe082238123bda git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout b217127e5e4ee0ecfce7c5f84cfe082238123bda # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) drivers/net/wireless/ti/wlcore/main.c:6305:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(&wl->bands[NL80211_BAND_2GHZ], &wl1271_band_2ghz, ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6305:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(&wl->bands[NL80211_BAND_2GHZ], &wl1271_band_2ghz, ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6307:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(&wl->bands[NL80211_BAND_2GHZ].ht_cap, ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6307:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(&wl->bands[NL80211_BAND_2GHZ].ht_cap, ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6310:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(&wl->bands[NL80211_BAND_5GHZ], &wl1271_band_5ghz, ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6310:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(&wl->bands[NL80211_BAND_5GHZ], &wl1271_band_5ghz, ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6312:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(&wl->bands[NL80211_BAND_5GHZ].ht_cap, ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6312:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(&wl->bands[NL80211_BAND_5GHZ].ht_cap, ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6373:2: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memset(wl, 0, sizeof(*wl)); ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6373:2: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 memset(wl, 0, sizeof(*wl)); ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6431:2: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memset(wl->tx_frames_map, 0, sizeof(wl->tx_frames_map)); ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6431:2: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 memset(wl->tx_frames_map, 0, sizeof(wl->tx_frames_map)); ^~~~~~ drivers/net/wireless/ti/wlcore/main.c:6573:13: warning: Access to field 'nvs_name' results in a dereference of a null pointer (loaded from field 'family') [clang-analyzer-core.NullDereference] } else if (pdev_data->family->nvs_name) { ^ drivers/net/wireless/ti/wlcore/main.c:6778:6: note: Assuming field 'ops' is non-null if (!wl->ops || !wl->ptable || !pdev_data) ^~~~~~~~ drivers/net/wireless/ti/wlcore/main.c:6778:6: note: Left side of '||' is false drivers/net/wireless/ti/wlcore/main.c:6778:18: note: Assuming field 'ptable' is non-null if (!wl->ops || !wl->ptable || !pdev_data) ^~~~~~~~~~~ drivers/net/wireless/ti/wlcore/main.c:6778:6: note: Left side of '||' is false if (!wl->ops || !wl->ptable || !pdev_data) ^ drivers/net/wireless/ti/wlcore/main.c:6778:33: note: Assuming 'pdev_data' is non-null if (!wl->ops || !wl->ptable || !pdev_data) ^~~~~~~~~~ drivers/net/wireless/ti/wlcore/main.c:6778:2: note: Taking false branch if (!wl->ops || !wl->ptable || !pdev_data) ^ drivers/net/wireless/ti/wlcore/main.c:6785:6: note: Assuming field 'family' is null if (pdev_data->family && pdev_data->family->nvs_name) { ^~~~~~~~~~~~~~~~~ drivers/net/wireless/ti/wlcore/main.c:6785:24: note: Left side of '&&' is false if (pdev_data->family && pdev_data->family->nvs_name) { ^ drivers/net/wireless/ti/wlcore/main.c:6796:3: note: Calling 'wlcore_nvs_cb' wlcore_nvs_cb(NULL, wl); ^~~~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/ti/wlcore/main.c:6566:6: note: 'fw' is null if (fw) { ^~ drivers/net/wireless/ti/wlcore/main.c:6566:2: note: Taking false branch if (fw) { ^ drivers/net/wireless/ti/wlcore/main.c:6573:13: note: Access to field 'nvs_name' results in a dereference of a null pointer (loaded from field 'family') } else if (pdev_data->family->nvs_name) { ^ ~~~~~~ Suppressed 69 warnings (69 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 228 warnings generated. drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:571:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(event->mddq_pl, mddq_pl, sizeof(event->mddq_pl)); ^~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:571:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(event->mddq_pl, mddq_pl, sizeof(event->mddq_pl)); ^~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:604:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(event->mbct_pl, mbct_pl, sizeof(event->mbct_pl)); ^~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:604:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(event->mbct_pl, mbct_pl, sizeof(event->mbct_pl)); ^~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:789:8: warning: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] err = snprintf(filename, sizeof(filename), ^~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:789:8: note: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 err = snprintf(filename, sizeof(filename), ^~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:816:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(types_info->data, firmware->data, types_info->data_size); ^~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:816:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(types_info->data, firmware->data, types_info->data_size); ^~~~~~ >> drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:851:8: warning: Use of >> memory after it is freed [clang-analyzer-unix.Malloc] kfree(types_info->ini_files); ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:867:6: note: Assuming 'err' is 0 if (err) ^~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:867:2: note: Taking false branch if (err) ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:872:6: note: Assuming 'slot_count' is not equal to 0 if (!slot_count) ^~~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:872:2: note: Taking false branch if (!slot_count) ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:876:6: note: Assuming 'linecards' is non-null if (!linecards) ^~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:876:2: note: Taking false branch if (!linecards) ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:882:8: note: Calling 'mlxsw_linecard_types_init' err = mlxsw_linecard_types_init(mlxsw_core, linecards); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:792:10: note: Assuming the condition is false WARN_ON(err >= sizeof(filename)); ^ include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON' int __ret_warn_on = !!(condition); \ ^~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:796:6: note: Assuming 'err' is 0 if (err) { ^~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:796:2: note: Taking false branch if (err) { ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:803:6: note: Assuming 'types_info' is non-null if (!types_info) { ^~~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:803:2: note: Taking false branch if (!types_info) { ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:811:6: note: Assuming field 'data' is non-null if (!types_info->data) { ^~~~~~~~~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:811:2: note: Taking false branch if (!types_info->data) { ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:820:6: note: 'err' is -22 if (err) { ^~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:820:2: note: Taking true branch if (err) { ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:822:3: note: Control jumps to line 839 goto err_type_file_file_validate; ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:841:2: note: Memory is released kfree(types_info); ^~~~~~~~~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:882:8: note: Returning; memory was released err = mlxsw_linecard_types_init(mlxsw_core, linecards); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:883:6: note: 'err' is 0 if (err) ^~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:883:2: note: Taking false branch if (err) ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:889:6: note: Assuming 'err' is not equal to 0 if (err) ^~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:889:2: note: Taking true branch if (err) ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:890:3: note: Control jumps to line 909 goto err_traps_register; ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:909:2: note: Calling 'mlxsw_linecard_types_fini' mlxsw_linecard_types_fini(linecards); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:849:7: note: 'types_info' is non-null if (!types_info) ^~~~~~~~~~ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:849:2: note: Taking false branch if (!types_info) ^ drivers/net/ethernet/mellanox/mlxsw/core_linecards.c:851:8: note: Use of memory after it is freed kfree(types_info->ini_files); ^~~~~~~~~~~~~~~~~~~~~ Suppressed 223 warnings (223 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 89 warnings generated. Suppressed 89 warnings (89 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 91 warnings generated. drivers/vdpa/mlx5/core/mr.c:508:2: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memset(mr, 0, sizeof(*mr)); ^~~~~~ drivers/vdpa/mlx5/core/mr.c:508:2: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 memset(mr, 0, sizeof(*mr)); vim +851 drivers/net/ethernet/mellanox/mlxsw/core_linecards.c b217127e5e4ee0ec Jiri Pirko 2022-04-18 844 b217127e5e4ee0ec Jiri Pirko 2022-04-18 845 static void mlxsw_linecard_types_fini(struct mlxsw_linecards *linecards) b217127e5e4ee0ec Jiri Pirko 2022-04-18 846 { b217127e5e4ee0ec Jiri Pirko 2022-04-18 847 struct mlxsw_linecard_types_info *types_info = linecards->types_info; b217127e5e4ee0ec Jiri Pirko 2022-04-18 848 b217127e5e4ee0ec Jiri Pirko 2022-04-18 849 if (!types_info) b217127e5e4ee0ec Jiri Pirko 2022-04-18 850 return; b217127e5e4ee0ec Jiri Pirko 2022-04-18 @851 kfree(types_info->ini_files); b217127e5e4ee0ec Jiri Pirko 2022-04-18 852 vfree(types_info->data); b217127e5e4ee0ec Jiri Pirko 2022-04-18 853 kfree(types_info); b217127e5e4ee0ec Jiri Pirko 2022-04-18 854 } b217127e5e4ee0ec Jiri Pirko 2022-04-18 855 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
