chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
cdc85c8
)
networkd: netdev - verify name of newlink messages
author
Tom Gundersen
<teg@jklm.no>
Fri, 18 Apr 2014 08:28:42 +0000
(10:28 +0200)
committer
Tom Gundersen
<teg@jklm.no>
Sat, 19 Apr 2014 16:41:58 +0000
(18:41 +0200)
src/network/networkd-netdev.c
patch
|
blob
|
history
diff --git
a/src/network/networkd-netdev.c
b/src/network/networkd-netdev.c
index 075a8790a091f442f6ad6a65ec946d3f3a5beaca..30cb74b8b75fe5e1dc8fef6523950900c4bc9a17 100644
(file)
--- 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;
uint16_t type;
const char *kind;
char *received_kind;
+ char *received_name;
int r, ifindex;
assert(netdev);
int r, ifindex;
assert(netdev);
@@
-391,6
+392,19
@@
int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *message) {
return -EINVAL;
}
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");
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)) {
}
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;
}
netdev_enter_failed(netdev);
return r;
}