From eba3d1cae5c360019b8b56d93a6e7f155db9e73b Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Tue, 20 Sep 2011 10:31:29 -0700 Subject: [PATCH] datapath: Correctly validate vport attributes on old kernels. The vport policy for OVS_VPORT_ATTR_PORT_NO and OVS_VPORT_ATTR_TYPE are present only in the section for newer kernels. This means that on older kernels the length of these attributes are never checked anywhere but we go ahead and read from them anyways. Signed-off-by: Jesse Gross Acked-by: Ben Pfaff --- datapath/datapath.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datapath/datapath.c b/datapath/datapath.c index 5bc0cc9fd..668d2ff7a 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -1619,14 +1619,14 @@ static struct genl_ops dp_datapath_genl_ops[] = { static const struct nla_policy vport_policy[ODP_VPORT_ATTR_MAX + 1] = { #ifdef HAVE_NLA_NUL_STRING [ODP_VPORT_ATTR_NAME] = { .type = NLA_NUL_STRING, .len = IFNAMSIZ - 1 }, - [ODP_VPORT_ATTR_PORT_NO] = { .type = NLA_U32 }, - [ODP_VPORT_ATTR_TYPE] = { .type = NLA_U32 }, [ODP_VPORT_ATTR_STATS] = { .len = sizeof(struct rtnl_link_stats64) }, [ODP_VPORT_ATTR_ADDRESS] = { .len = ETH_ALEN }, #else [ODP_VPORT_ATTR_STATS] = { .minlen = sizeof(struct rtnl_link_stats64) }, [ODP_VPORT_ATTR_ADDRESS] = { .minlen = ETH_ALEN }, #endif + [ODP_VPORT_ATTR_PORT_NO] = { .type = NLA_U32 }, + [ODP_VPORT_ATTR_TYPE] = { .type = NLA_U32 }, [ODP_VPORT_ATTR_MTU] = { .type = NLA_U32 }, [ODP_VPORT_ATTR_OPTIONS] = { .type = NLA_NESTED }, }; -- 2.47.0