summaryrefslogtreecommitdiff
path: root/net/llc
diff options
context:
space:
mode:
authorKangjie Lu <kangjielu@gmail.com>2016-05-03 23:35:05 +0300
committerSasha Levin <sasha.levin@oracle.com>2016-07-12 15:48:13 +0300
commit84aa66876dc5594058a346bf36928d8b652e6a6b (patch)
treefc05e67b86b2dac7b7408d886a49279841ff9e9c /net/llc
parent361d2edcb4bd07fa7b0b4758bbb020e121ebc840 (diff)
downloadlinux-84aa66876dc5594058a346bf36928d8b652e6a6b.tar.xz
net: fix infoleak in llc
[ 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>
Diffstat (limited to 'net/llc')
-rw-r--r--net/llc/af_llc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/llc/af_llc.c b/net/llc/af_llc.c
index bb9cbc17d926..3e8691895385 100644
--- a/net/llc/af_llc.c
+++ b/net/llc/af_llc.c
@@ -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);