Commit 3b78155b authored by Pablo Neira Ayuso's avatar Pablo Neira Ayuso
Browse files

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: default avatarPablo Neira Ayuso <pablo@netfilter.org>
Acked-by: default avatarJarno Rajahalme <jrajahalme@nicira.com>
Acked-by: default avatarJoe Stringer <joe@ovn.org>
parent 71d8c47f
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -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");