]> git.hungrycats.org Git - linux/commitdiff
net: fix infoleak in llc
authorKangjie Lu <kangjielu@gmail.com>
Tue, 3 May 2016 20:35:05 +0000 (16:35 -0400)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 11 Jul 2016 03:07:24 +0000 (23:07 -0400)
[ Upstream commit b8670c09f37bdf2847cc44f36511a53afc6161fd ]

The stack object “info” has a total size of 12 bytes. Its last byte
is padding which is not initialized and leaked via “put_cmsg”.

Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
net/llc/af_llc.c

index 17a8dff0609066e338b528328c4ed01259314d43..c58f242c00f144fe119511290cfe03263a624d30 100644 (file)
@@ -626,6 +626,7 @@ static void llc_cmsg_rcv(struct msghdr *msg, struct sk_buff *skb)
        if (llc->cmsg_flags & LLC_CMSG_PKTINFO) {
                struct llc_pktinfo info;
 
+               memset(&info, 0, sizeof(info));
                info.lpi_ifindex = llc_sk(skb->sk)->dev->ifindex;
                llc_pdu_decode_dsap(skb, &info.lpi_sap);
                llc_pdu_decode_da(skb, info.lpi_mac);