Configuration check to accept source route IP options should be made on the
incoming netdevice when the skb->dev is an l3mdev master.

Signed-off-by: Stephen Suryaputra <ssuryae...@gmail.com>
---
 net/ipv4/ip_input.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index ecce2dc78f17..754176222ef6 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -263,6 +263,9 @@ static inline bool ip_rcv_options(struct sk_buff *skb)
        const struct iphdr *iph;
        struct net_device *dev = skb->dev;
 
+       if (netif_is_l3_master(dev))
+               dev = __dev_get_by_index(dev_net(dev), IPCB(skb)->iif);
+
        /* It looks as overkill, because not all
           IP options require packet mangling.
           But it is the easiest for now, especially taking
-- 
2.17.1

Reply via email to