diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-12-23 11:15:02 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-12-23 11:15:02 +0000 |
commit | 720afadc7a5069c6580fd2b5140732565261bebf (patch) | |
tree | 70f1eb3594e9a01715c4a7a0b5772d683da8c48d /target/linux/generic/patches-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch | |
parent | 8996164e5665fbe08919fd7ebf850b082f4e347a (diff) | |
download | mtk-20170518-720afadc7a5069c6580fd2b5140732565261bebf.zip mtk-20170518-720afadc7a5069c6580fd2b5140732565261bebf.tar.gz mtk-20170518-720afadc7a5069c6580fd2b5140732565261bebf.tar.bz2 |
kernel: backport all current pppoe kernel fixes to 3.18
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 47963
Diffstat (limited to 'target/linux/generic/patches-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch')
-rw-r--r-- | target/linux/generic/patches-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch b/target/linux/generic/patches-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch new file mode 100644 index 0000000..3ce778e --- /dev/null +++ b/target/linux/generic/patches-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch @@ -0,0 +1,25 @@ +From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> +Date: Mon, 20 Apr 2015 21:07:48 +0200 +Subject: [PATCH] pppoe: Lacks DST MAC address check + +A pppoe session is identified by its session ID and MAC address. +Currently pppoe does not check if the received pkg has the correct +MAC address. This is a problem when the eth I/F is in promisc mode +as then any DST MAC address is accepted. + +Signed-off-by: Joakim Tjernlund <joakim.tjernlund@transmode.se> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + +--- a/drivers/net/ppp/pppoe.c ++++ b/drivers/net/ppp/pppoe.c +@@ -380,6 +380,9 @@ static int pppoe_rcv_core(struct sock *s + * can't change. + */ + ++ if (skb->pkt_type == PACKET_OTHERHOST) ++ goto abort_kfree; ++ + if (sk->sk_state & PPPOX_BOUND) { + ppp_input(&po->chan, skb); + } else if (sk->sk_state & PPPOX_RELAY) { |