提交 3ce072db 编写于 作者: T Tetsuo Handa 提交者: Xie XiuQi

sctp: Check address length before reading address family

mainline inclusion
from mainline-5.1-rc6
commit 175f7c1f01d3
category: bugfix
bugzilla: 14097
CVE: NA

-------------------------------------------------

KMSAN will complain if valid address length passed to connect() is shorter
than sizeof("struct sockaddr"->sa_family) bytes.
Signed-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: NNeil Horman <nhorman@tuxdriver.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
Signed-off-by: NZhiqiang Liu <liuzhiqiang26@huawei.com>
Reviewed-by: NWenan Mao <maowenan@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 6c566167
...@@ -4529,7 +4529,8 @@ static int sctp_connect(struct sock *sk, struct sockaddr *addr, ...@@ -4529,7 +4529,8 @@ static int sctp_connect(struct sock *sk, struct sockaddr *addr,
} }
/* Validate addr_len before calling common connect/connectx routine. */ /* 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) { if (!af || addr_len < af->sockaddr_len) {
err = -EINVAL; err = -EINVAL;
} else { } else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册