net: Convert proto_ops connect() callbacks to use sockaddr_unsized

Update all struct proto_ops connect() callback function prototypes from
"struct sockaddr *" to "struct sockaddr_unsized *" to avoid lying to the
compiler about object sizes. Calls into struct proto handlers gain casts
that will be removed in the struct proto conversion patch.

No binary changes expected.

Signed-off-by: Kees Cook <kees@kernel.org>
Link: https://patch.msgid.link/20251104002617.2752303-3-kees@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Kees Cook
2025-11-03 16:26:11 -08:00
committed by Jakub Kicinski
parent 0e50474fa5
commit 85cb0757d7
72 changed files with 110 additions and 106 deletions

View File

@@ -995,7 +995,7 @@ vsock_bind(struct socket *sock, struct sockaddr_unsized *addr, int addr_len)
sk = sock->sk;
if (vsock_addr_cast((struct sockaddr *)addr, addr_len, &vm_addr) != 0)
if (vsock_addr_cast(addr, addr_len, &vm_addr) != 0)
return -EINVAL;
lock_sock(sk);
@@ -1328,7 +1328,7 @@ out:
}
static int vsock_dgram_connect(struct socket *sock,
struct sockaddr *addr, int addr_len, int flags)
struct sockaddr_unsized *addr, int addr_len, int flags)
{
int err;
struct sock *sk;
@@ -1528,7 +1528,7 @@ static void vsock_connect_timeout(struct work_struct *work)
sock_put(sk);
}
static int vsock_connect(struct socket *sock, struct sockaddr *addr,
static int vsock_connect(struct socket *sock, struct sockaddr_unsized *addr,
int addr_len, int flags)
{
int err;

View File

@@ -57,7 +57,7 @@ bool vsock_addr_equals_addr(const struct sockaddr_vm *addr,
}
EXPORT_SYMBOL_GPL(vsock_addr_equals_addr);
int vsock_addr_cast(const struct sockaddr *addr,
int vsock_addr_cast(const struct sockaddr_unsized *addr,
size_t len, struct sockaddr_vm **out_addr)
{
if (len < sizeof(**out_addr))