From c6315a7afc905c0b41901cf8e204306296ebb640 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Fri, 18 Apr 2014 10:28:42 +0200 Subject: [PATCH] networkd: netdev - verify name of newlink messages --- src/network/networkd-netdev.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/network/networkd-netdev.c b/src/network/networkd-netdev.c index 075a8790a..30cb74b8b 100644 --- a/src/network/networkd-netdev.c +++ b/src/network/networkd-netdev.c @@ -375,6 +375,7 @@ int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *message) { uint16_t type; const char *kind; char *received_kind; + char *received_name; int r, ifindex; assert(netdev); @@ -391,6 +392,19 @@ int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *message) { return -EINVAL; } + r = sd_rtnl_message_read_string(message, IFLA_IFNAME, &received_name); + if (r < 0) { + log_error_netdev(netdev, "Could not get IFNAME"); + return r; + } + + if (!streq(netdev->name, received_name)) { + log_error_netdev(netdev, "Received newlink with wrong IFNAME %s", + received_name); + netdev_enter_failed(netdev); + return r; + } + r = sd_rtnl_message_enter_container(message, IFLA_LINKINFO); if (r < 0) { log_error_netdev(netdev, "Could not get LINKINFO"); @@ -417,7 +431,8 @@ int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *message) { } if (!streq(kind, received_kind)) { - log_error_netdev(netdev, "Received newlink with wrong KIND"); + log_error_netdev(netdev, "Received newlink with wrong KIND %s, " + "expected %s", received_kind, kind); netdev_enter_failed(netdev); return r; } -- 2.30.2