ipvs: Always clear ipvs_property flag in skb_scrub_packet()
[ Upstream commit de2c211868b9424f9aa9b3432c4430825bafb41b ] We found an issue when using bpf_redirect with ipvs NAT mode after commitff70202b2d("dev_forward_skb: do not scrub skb mark within the same name space"). Particularly, we use bpf_redirect to return the skb directly back to the netif it comes from, i.e., xnet is false in skb_scrub_packet(), and then ipvs_property is preserved and SNAT is skipped in the rx path. ipvs_property has been already cleared when netns is changed in commit2b5ec1a5f9("netfilter/ipvs: clear ipvs_property flag when SKB net namespace changed"). This patch just clears it in spite of netns. Fixes:2b5ec1a5f9("netfilter/ipvs: clear ipvs_property flag when SKB net namespace changed") Signed-off-by: Philo Lu <lulie@linux.alibaba.com> Acked-by: Julian Anastasov <ja@ssi.bg> Link: https://patch.msgid.link/20250222033518.126087-1-lulie@linux.alibaba.com Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b7091d6b3c
commit
8ffd0390fc
+1
-1
@@ -6127,11 +6127,11 @@ void skb_scrub_packet(struct sk_buff *skb, bool xnet)
|
|||||||
skb->offload_fwd_mark = 0;
|
skb->offload_fwd_mark = 0;
|
||||||
skb->offload_l3_fwd_mark = 0;
|
skb->offload_l3_fwd_mark = 0;
|
||||||
#endif
|
#endif
|
||||||
|
ipvs_reset(skb);
|
||||||
|
|
||||||
if (!xnet)
|
if (!xnet)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ipvs_reset(skb);
|
|
||||||
skb->mark = 0;
|
skb->mark = 0;
|
||||||
skb_clear_tstamp(skb);
|
skb_clear_tstamp(skb);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user