[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?
--
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
|