rtnetlink: reject non-IFLA_VF_PORT attributes inside IFLA_VF_PORTS
authorDaniel Borkmann <daniel@iogearbox.net>
Sun, 12 Jul 2015 22:06:02 +0000 (00:06 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 15 Jul 2015 22:53:27 +0000 (15:53 -0700)
commit035d210f928ce083435b4fd351a26d126c02c927
tree9de66347d7aefe38a10b5a1cb3d859d723627052
parent50c2e4dd6749725338621fff456b26d3a592259f
rtnetlink: reject non-IFLA_VF_PORT attributes inside IFLA_VF_PORTS

Similarly as in commit 4f7d2cdfdde7 ("rtnetlink: verify IFLA_VF_INFO
attributes before passing them to driver"), we have a double nesting
of netlink attributes, i.e. IFLA_VF_PORTS only contains IFLA_VF_PORT
that is nested itself. While IFLA_VF_PORTS is a verified attribute
from ifla_policy[], we only check if the IFLA_VF_PORTS container has
IFLA_VF_PORT attributes and then pass the attribute's content itself
via nla_parse_nested(). It would be more correct to reject inner types
other than IFLA_VF_PORT instead of continuing parsing and also similarly
as in commit 4f7d2cdfdde7, to check for a minimum of NLA_HDRLEN.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Roopa Prabhu <roopa@cumulusnetworks.com>
Cc: Scott Feldman <sfeldma@gmail.com>
Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/rtnetlink.c