]> git.itanic.dy.fi Git - linux-stable/commitdiff
can: isotp: isotp_getname(): fix kernel information leak
authorOliver Hartkopp <socketcan@hartkopp.net>
Tue, 12 Jan 2021 09:16:43 +0000 (10:16 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Wed, 13 Jan 2021 21:15:13 +0000 (22:15 +0100)
Initialize the sockaddr_can structure to prevent a data leak to user space.

Suggested-by: Cong Wang <xiyou.wangcong@gmail.com>
Reported-by: syzbot+057884e2f453e8afebc8@syzkaller.appspotmail.com
Fixes: e057dd3fc20f ("can: add ISO 15765-2:2016 transport protocol")
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Link: https://lore.kernel.org/r/20210112091643.11789-1-socketcan@hartkopp.net
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
net/can/isotp.c

index 7839c3b9e5bea29e204461b58fcd868cef303c3a..3ef7f78e553bc93e2c24db9b5b8a016cc0235f28 100644 (file)
@@ -1155,6 +1155,7 @@ static int isotp_getname(struct socket *sock, struct sockaddr *uaddr, int peer)
        if (peer)
                return -EOPNOTSUPP;
 
+       memset(addr, 0, sizeof(*addr));
        addr->can_family = AF_CAN;
        addr->can_ifindex = so->ifindex;
        addr->can_addr.tp.rx_id = so->rxid;