• Dmitry Antipov's avatar
    wifi: ath10k: fix clang-specific fortify warning · cb4c132e
    Dmitry Antipov authored
    When compiling with clang 16.0.6 and CONFIG_FORTIFY_SOURCE=y, I've
    noticed the following (somewhat confusing due to absence of an actual
    source code location):
    
    In file included from drivers/net/wireless/ath/ath10k/debug.c:8:
    In file included from ./include/linux/module.h:13:
    In file included from ./include/linux/stat.h:19:
    In file included from ./include/linux/time.h:60:
    In file included from ./include/linux/time32.h:13:
    In file included from ./include/linux/timex.h:67:
    In file included from ./arch/x86/include/asm/timex.h:5:
    In file included from ./arch/x86/include/asm/processor.h:23:
    In file included from ./arch/x86/include/asm/msr.h:11:
    In file included from ./arch/x86/include/asm/cpumask.h:5:
    In file included from ./include/linux/cpumask.h:12:
    In file included from ./include/linux/bitmap.h:11:
    In file included from ./include/linux/string.h:254:
    ./include/linux/fortify-string.h:592:4: warning: call to '__read_overflow2_field'
    declared with 'warning' attribute: detected read beyond size of field (2nd
    parameter); maybe use struct_group()? [-Wattribute-warning]
                            __read_overflow2_field(q_size_field, size);
    
    The compiler actually complains on 'ath10k_debug_get_et_strings()' where
    fortification logic inteprets call to 'memcpy()' as an attempt to copy
    the whole 'ath10k_gstrings_stats' array from it's first member and so
    issues an overread warning. This warning may be silenced by passing
    an address of the whole array and not the first member to 'memcpy()'.
    Signed-off-by: default avatarDmitry Antipov <dmantipov@yandex.ru>
    Acked-by: default avatarJeff Johnson <quic_jjohnson@quicinc.com>
    Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20230829093652.234537-1-dmantipov@yandex.ru
    cb4c132e
debug.c 64.1 KB