diff options
Diffstat (limited to 'target/linux/generic/pending-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch')
-rw-r--r-- | target/linux/generic/pending-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/pending-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch b/target/linux/generic/pending-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch new file mode 100644 index 0000000000..f592929b3e --- /dev/null +++ b/target/linux/generic/pending-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 +@@ -379,6 +379,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) { |