• Jean-Philippe Brucker's avatar
    mm/util: Swap kmemdup_array() arguments · 0ee14725
    Jean-Philippe Brucker authored
    GCC 14.1 complains about the argument usage of kmemdup_array():
    
      drivers/soc/tegra/fuse/fuse-tegra.c:130:65: error: 'kmemdup_array' sizes specified with 'sizeof' in the earlier argument and not in the later argument [-Werror=calloc-transposed-args]
        130 |         fuse->lookups = kmemdup_array(fuse->soc->lookups, sizeof(*fuse->lookups),
            |                                                                 ^
      drivers/soc/tegra/fuse/fuse-tegra.c:130:65: note: earlier argument should specify number of elements, later size of each element
    
    The annotation introduced by commit 7d78a777 ("string: Add
    additional __realloc_size() annotations for "dup" helpers") lets the
    compiler think that kmemdup_array() follows the same format as calloc(),
    with the number of elements preceding the size of one element. So we
    could simply swap the arguments to __realloc_size() to get rid of that
    warning, but it seems cleaner to instead have kmemdup_array() follow the
    same format as krealloc_array(), memdup_array_user(), calloc() etc.
    
    Fixes: 7d78a777 ("string: Add additional __realloc_size() annotations for "dup" helpers")
    Signed-off-by: default avatarJean-Philippe Brucker <jean-philippe@linaro.org>
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20240606144608.97817-2-jean-philippe@linaro.orgSigned-off-by: default avatarKees Cook <kees@kernel.org>
    0ee14725
util.c 29.7 KB