]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: fix infoleak in llc
authorKangjie Lu <kangjielu@gmail.com>
Tue, 3 May 2016 20:35:05 +0000 (16:35 -0400)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 15 Jun 2016 20:29:34 +0000 (21:29 +0100)
commit b8670c09f37bdf2847cc44f36511a53afc6161fd upstream.

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: Ben Hutchings <ben@decadent.org.uk>
net/llc/af_llc.c

index 0080d2b0a8ae5f317df6b7bee4fdec59d4dc37bf..a76a67d38ec375069248e0f2811c1aca3a3a2535 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);