net/hsr: Fix NULL pointer dereference on incomplete hsr_newlink() params.
Subsystems (3)
PATCH 10/10 net/hsr: Fix NULL pointer dereference on incomplete hsr_newlink() params.
If none of the slave interfaces are specified, struct nlattr *data[] may be NULL. Make sure to check for that.
While I'm at it, fix the horrible error messages displayed when only one of the slave interfaces isn't specified.
Signed-off-by Arvid Brodin <[email protected]>
--- net/hsr/hsr_netlink.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
net/hsr/hsr_netlink.c +6 -2
@@ -37,13 +37,17 @@ static int hsr_newlink(struct net *src_net, struct net_device *dev,struct net_device *link[2 ];unsigned char multicast_spec; +if (!data) { +netdev_info (dev,"HSR: No slave devices specified\n" ); +return -EINVAL ; + }if (!data[IFLA_HSR_SLAVE1 ]) { -netdev_info (dev,"IFLA_HSR_SLAVE1 missing!\n" ); +netdev_info (dev,"HSR: Slave1 device not specified\n" );return -EINVAL ; } link[0 ] =__dev_get_by_index (src_net,nla_get_u32 (data[IFLA_HSR_SLAVE1 ]));if (!data[IFLA_HSR_SLAVE2 ]) { -netdev_info (dev,"IFLA_HSR_SLAVE2 missing!\n" ); +netdev_info (dev,"HSR: Slave2 device not specified\n" );return -EINVAL ; } link[1 ] =__dev_get_by_index (src_net,nla_get_u32 (data[IFLA_HSR_SLAVE2 ]));
Signature · 6 lines
1.8.3.2 -- Arvid Brodin | Consultant (Linux) ALTEN | Knarrarnäsgatan 7 | SE-164 40 Kista | Sweden [email protected] | www.alten.se/en/