diff options
Diffstat (limited to 'net/openvswitch/conntrack.c')
| -rw-r--r-- | net/openvswitch/conntrack.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c index e3c4c6c3fef7..03859e386b47 100644 --- a/net/openvswitch/conntrack.c +++ b/net/openvswitch/conntrack.c @@ -1310,8 +1310,8 @@ static int parse_ct(const struct nlattr *attr, struct ovs_conntrack_info *info,  	nla_for_each_nested(a, attr, rem) {  		int type = nla_type(a); -		int maxlen = ovs_ct_attr_lens[type].maxlen; -		int minlen = ovs_ct_attr_lens[type].minlen; +		int maxlen; +		int minlen;  		if (type > OVS_CT_ATTR_MAX) {  			OVS_NLERR(log, @@ -1319,6 +1319,9 @@ static int parse_ct(const struct nlattr *attr, struct ovs_conntrack_info *info,  				  type, OVS_CT_ATTR_MAX);  			return -EINVAL;  		} + +		maxlen = ovs_ct_attr_lens[type].maxlen; +		minlen = ovs_ct_attr_lens[type].minlen;  		if (nla_len(a) < minlen || nla_len(a) > maxlen) {  			OVS_NLERR(log,  				  "Conntrack attr type has unexpected length (type=%d, length=%d, expected=%d)",  |