]> git.ipfire.org Git - thirdparty/linux.git/commit
net: Convert struct sockaddr to fixed-size "sa_data[14]"
authorKees Cook <kees@kernel.org>
Tue, 4 Nov 2025 00:26:16 +0000 (16:26 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 5 Nov 2025 03:10:33 +0000 (19:10 -0800)
commit2b5e9f9b7e414c5eeb20dd7a7b80816ff55cf57b
tree8e72511780bc69941e51a54cfa126f0e9538347a
parentc1a799eef62b8c3298a4d82753fe0f2a448e5e4f
net: Convert struct sockaddr to fixed-size "sa_data[14]"

Revert struct sockaddr from flexible array to fixed 14-byte "sa_data",
to solve over 36,000 -Wflex-array-member-not-at-end warnings, since
struct sockaddr is embedded within many network structs.

With socket/proto sockaddr-based internal APIs switched to use struct
sockaddr_unsized, there should be no more uses of struct sockaddr that
depend on reading beyond the end of struct sockaddr::sa_data that might
trigger bounds checking.

Comparing an x86_64 "allyesconfig" vmlinux build before and after this
patch showed no new "ud1" instructions from CONFIG_UBSAN_BOUNDS nor any
new "field-spanning" memcpy CONFIG_FORTIFY_SOURCE instrumentations.

Cc: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Kees Cook <kees@kernel.org>
Link: https://patch.msgid.link/20251104002617.2752303-8-kees@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/socket.h
net/core/dev.c
net/core/dev_ioctl.c
net/ipv4/arp.c
net/packet/af_packet.c
tools/perf/trace/beauty/include/linux/socket.h