netfilter: x_tables: Use unsafe_memcpy() for 0-sized destination
authorKees Cook <keescook@chromium.org>
Fri, 16 Feb 2024 23:31:32 +0000 (15:31 -0800)
committerFlorian Westphal <fw@strlen.de>
Wed, 21 Feb 2024 11:03:22 +0000 (12:03 +0100)
commit26f4dac11775a1ca24e2605cb30e828d4dbdea93
tree52cacb9a443fc1fa968444b233b18d65137a4b4a
parent3f801968889459ecae1eab524b039676e6eaa319
netfilter: x_tables: Use unsafe_memcpy() for 0-sized destination

The struct xt_entry_target fake flexible array has not be converted to a
true flexible array, which is mainly blocked by it being both UAPI and
used in the middle of other structures. In order to properly check for
0-sized destinations in memcpy(), an exception must be made for the one
place where it is still a destination. Since memcpy() was already
skipping checks for 0-sized destinations, using unsafe_memcpy() is no
change in behavior.

Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
net/netfilter/x_tables.c