提交 7d98ffd8 编写于 作者: U Ulrich Weber 提交者: David S. Miller

xfrm: update flowi saddr in icmp_send if unset

otherwise xfrm_lookup will fail to find correct policy
Signed-off-by: NUlrich Weber <uweber@astaro.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 4c62ab9c
...@@ -569,6 +569,9 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info) ...@@ -569,6 +569,9 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
/* No need to clone since we're just using its address. */ /* No need to clone since we're just using its address. */
rt2 = rt; rt2 = rt;
if (!fl.nl_u.ip4_u.saddr)
fl.nl_u.ip4_u.saddr = rt->rt_src;
err = xfrm_lookup(net, (struct dst_entry **)&rt, &fl, NULL, 0); err = xfrm_lookup(net, (struct dst_entry **)&rt, &fl, NULL, 0);
switch (err) { switch (err) {
case 0: case 0:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册