• Kees Cook's avatar
    ray_cs: Split memcpy() to avoid bounds check warning · 92276c59
    Kees Cook authored
    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memcpy(), memmove(), and memset(), avoid
    intentionally writing across neighboring fields.
    
    Split memcpy() for each address range to help memcpy() correctly reason
    about the bounds checking. Avoids the future warning:
    
    In function 'fortify_memcpy_chk',
        inlined from 'memcpy_toio' at ./include/asm-generic/io.h:1204:2,
        inlined from 'ray_build_header.constprop' at drivers/net/wireless/ray_cs.c:984:3:
    ./include/linux/fortify-string.h:285:4: warning: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Wattribute-warning]
      285 |    __write_overflow_field(p_size_field, size);
          |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Cc: Kalle Valo <kvalo@codeaurora.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: linux-wireless@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210819202825.3545692-4-keescook@chromium.org
    92276c59
ray_cs.c 84 KB