11/05/2022 18:41, Ali Alnubani: > Use fgets instead of fscanf to resolve the following warning > reported by clang 14.0.0 in Fedora 37 (Rawhide): > > drivers/net/mlx5/linux/mlx5_ethdev_os.c:1137:52: error: > 'fscanf' may overflow; destination buffer in argument 3 has size 16, > but the corresponding specifier may require size 17 > [-Werror,-Wfortify-source] > ret = fscanf(file, "%" RTE_STR(IF_NAMESIZE) "s", port_name);
Some other patches are proposing to declare the variable of size IF_NAMESIZE+1 but I think it's wrong because IF_NAMESIZE includes a terminating null byte. > Fixes: 63d1db710fbc ("net/mlx5: fix unlimited parsing of switch info") > Cc: michae...@mellanox.com > Cc: sta...@dpdk.org > > Signed-off-by: Ali Alnubani <alia...@nvidia.com> [...] > - ret = fscanf(file, "%" RTE_STR(IF_NAMESIZE) "s", port_name); > - fclose(file); > - if (ret == 1) > + if (fgets(port_name, IF_NAMESIZE, file) != NULL) > mlx5_translate_port_name(port_name, &data); > + fclose(file); Acked-by: Thomas Monjalon <tho...@monjalon.net>