]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-4.14/misdn-check-address-length-before-reading-address-fa.patch
autosel fixes for 4.14
[thirdparty/kernel/stable-queue.git] / queue-4.14 / misdn-check-address-length-before-reading-address-fa.patch
1 From 78d7ca0927cfd9346d46a5f187eac456eecae535 Mon Sep 17 00:00:00 2001
2 From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
3 Date: Fri, 12 Apr 2019 19:52:36 +0900
4 Subject: mISDN: Check address length before reading address family
5
6 [ Upstream commit 238ffdc49ef98b15819cfd5e3fb23194e3ea3d39 ]
7
8 KMSAN will complain if valid address length passed to bind() is shorter
9 than sizeof("struct sockaddr_mISDN"->family) bytes.
10
11 Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
12 Signed-off-by: David S. Miller <davem@davemloft.net>
13 Signed-off-by: Sasha Levin <sashal@kernel.org>
14 ---
15 drivers/isdn/mISDN/socket.c | 4 ++--
16 1 file changed, 2 insertions(+), 2 deletions(-)
17
18 diff --git a/drivers/isdn/mISDN/socket.c b/drivers/isdn/mISDN/socket.c
19 index c5603d1a07d6e..65cb4aac8dce7 100644
20 --- a/drivers/isdn/mISDN/socket.c
21 +++ b/drivers/isdn/mISDN/socket.c
22 @@ -712,10 +712,10 @@ base_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
23 struct sock *sk = sock->sk;
24 int err = 0;
25
26 - if (!maddr || maddr->family != AF_ISDN)
27 + if (addr_len < sizeof(struct sockaddr_mISDN))
28 return -EINVAL;
29
30 - if (addr_len < sizeof(struct sockaddr_mISDN))
31 + if (!maddr || maddr->family != AF_ISDN)
32 return -EINVAL;
33
34 lock_sock(sk);
35 --
36 2.20.1
37