enic: Avoid false positive under FORTIFY_SOURCE
authorKees Cook <keescook@chromium.org>
Fri, 16 Feb 2024 23:30:05 +0000 (15:30 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Feb 2024 10:57:27 +0000 (10:57 +0000)
commit40b9385dd8e6a0515e1c9cd06a277483556b7286
tree5d4638e8e3d3cdb81452fca24fc3d77bb01210b1
parent121e4dcba3700b30e63f25203d09ddfccbab4a09
enic: Avoid false positive under FORTIFY_SOURCE

FORTIFY_SOURCE has been ignoring 0-sized destinations while the kernel
code base has been converted to flexible arrays. In order to enforce
the 0-sized destinations (e.g. with __counted_by), the remaining 0-sized
destinations need to be handled. Unfortunately, struct vic_provinfo
resists full conversion, as it contains a flexible array of flexible
arrays, which is only possible with the 0-sized fake flexible array.

Use unsafe_memcpy() to avoid future false positives under
CONFIG_FORTIFY_SOURCE.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cisco/enic/vnic_vic.c