mirror of https://gitee.com/openkylin/linux.git
openvswitch: __nf_ct_l{3,4}proto_find() always return a valid pointer
If the protocol is not natively supported, this assigns generic protocol tracker so we can always assume a valid pointer after these calls. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Joe Stringer <joe@ovn.org>
This commit is contained in:
parent
71d8c47fc6
commit
3b78155b1b
|
@ -439,20 +439,12 @@ ovs_ct_find_existing(struct net *net, const struct nf_conntrack_zone *zone,
|
|||
u8 protonum;
|
||||
|
||||
l3proto = __nf_ct_l3proto_find(l3num);
|
||||
if (!l3proto) {
|
||||
pr_debug("ovs_ct_find_existing: Can't get l3proto\n");
|
||||
return NULL;
|
||||
}
|
||||
if (l3proto->get_l4proto(skb, skb_network_offset(skb), &dataoff,
|
||||
&protonum) <= 0) {
|
||||
pr_debug("ovs_ct_find_existing: Can't get protonum\n");
|
||||
return NULL;
|
||||
}
|
||||
l4proto = __nf_ct_l4proto_find(l3num, protonum);
|
||||
if (!l4proto) {
|
||||
pr_debug("ovs_ct_find_existing: Can't get l4proto\n");
|
||||
return NULL;
|
||||
}
|
||||
if (!nf_ct_get_tuple(skb, skb_network_offset(skb), dataoff, l3num,
|
||||
protonum, net, &tuple, l3proto, l4proto)) {
|
||||
pr_debug("ovs_ct_find_existing: Can't get tuple\n");
|
||||
|
|
Loading…
Reference in New Issue