net: fix infoleak in llc
authorKangjie Lu <kangjielu@gmail.com>
Tue, 3 May 2016 20:35:05 +0000 (16:35 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 May 2016 20:18:48 +0000 (16:18 -0400)
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>
net/llc/af_llc.c

index b3c52e3..8ae3ed9 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);