Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 175f7c1f authored by Tetsuo Handa's avatar Tetsuo Handa Committed by David S. Miller
Browse files

sctp: Check address length before reading address family



KMSAN will complain if valid address length passed to connect() is shorter
than sizeof("struct sockaddr"->sa_family) bytes.

Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 238ffdc4
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4847,7 +4847,8 @@ static int sctp_connect(struct sock *sk, struct sockaddr *addr,
	}

	/* Validate addr_len before calling common connect/connectx routine. */
	af = sctp_get_af_specific(addr->sa_family);
	af = addr_len < offsetofend(struct sockaddr, sa_family) ? NULL :
		sctp_get_af_specific(addr->sa_family);
	if (!af || addr_len < af->sockaddr_len) {
		err = -EINVAL;
	} else {