On Tue, 2015-07-14 at 17:20 +0900, Simon Horman wrote: > [Cc Hannes] > > On Fri, Jun 26, 2015 at 03:18:45AM -0700, Alex Gartrell wrote: > > Previously there was a trivial panic > > > > unshare -n /bin/bash <<EOF > > ip addr add dev lo face::1/128 > > ipvsadm -A -t [face::1]:15213 > > ipvsadm -a -t [face::1]:15213 -r b00c::1 > > echo boom | nc face::1 15213 > > EOF > > > > This patch allows us to replicate the net logic above and simply > > capture > > the skb_dst(skb)->dev and use that for the purpose of the > > invocation. > > > > Signed-off-by: Alex Gartrell <agartrell@xxxxxx> > > --- > > net/netfilter/ipvs/ip_vs_xmit.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/net/netfilter/ipvs/ip_vs_xmit.c > > b/net/netfilter/ipvs/ip_vs_xmit.c > > index bf66a86..b99d806 100644 > > --- a/net/netfilter/ipvs/ip_vs_xmit.c > > +++ b/net/netfilter/ipvs/ip_vs_xmit.c > > @@ -505,6 +505,13 @@ err_put: > > return -1; > > > > err_unreach: > > + /* The ip6_link_failure function requires the dev field to > > be set > > + * in order to get the net (further for the sake of fwmark > > + * reflection). > > + */ > > + if (!skb->dev) > > + skb->dev = skb_dst(skb)->dev; > > + > > dst_link_failure(skb); > > return -1; > > } > > > My reading of this is that the above: > > Fixes: 1eb4f7582868 ("ipv6: in case of link failure remove route > directly instead of letting it expire") > > As it seems to me that it is that patch that causes ip6_link_failure > to > require the dev field to be set. > > Does that seem sane? >From what dst_link_failure -> ip6_link_failure expects the patch does make sense. But the Fixes tag is wrong, because the panic should be triggered during dereferencing dev_net(skb->dev) in icmp6_send. This part was not touched by my patch. Bye, Hannes -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html