mirror of
https://github.com/systemd/systemd.git
synced 2025-01-10 05:18:17 +03:00
network/netdev: check family of received NEWLINK message
For safety. No functional change, just refactoring and preparation for later commits.
This commit is contained in:
parent
72fd133dca
commit
5d7de25052
@ -351,7 +351,7 @@ int netdev_set_ifindex(NetDev *netdev, sd_netlink_message *message) {
|
|||||||
const char *kind;
|
const char *kind;
|
||||||
const char *received_kind;
|
const char *received_kind;
|
||||||
const char *received_name;
|
const char *received_name;
|
||||||
int r, ifindex;
|
int r, ifindex, family;
|
||||||
|
|
||||||
assert(netdev);
|
assert(netdev);
|
||||||
assert(message);
|
assert(message);
|
||||||
@ -363,6 +363,13 @@ int netdev_set_ifindex(NetDev *netdev, sd_netlink_message *message) {
|
|||||||
if (type != RTM_NEWLINK)
|
if (type != RTM_NEWLINK)
|
||||||
return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL), "Cannot set ifindex from unexpected rtnl message type.");
|
return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL), "Cannot set ifindex from unexpected rtnl message type.");
|
||||||
|
|
||||||
|
r = sd_rtnl_message_get_family(message, &family);
|
||||||
|
if (r < 0)
|
||||||
|
return log_netdev_warning_errno(netdev, r, "Failed to get family from received rtnl message: %m");
|
||||||
|
|
||||||
|
if (family != AF_UNSPEC)
|
||||||
|
return 0; /* IFLA_LINKINFO is only contained in the message with AF_UNSPEC. */
|
||||||
|
|
||||||
r = sd_rtnl_message_link_get_ifindex(message, &ifindex);
|
r = sd_rtnl_message_link_get_ifindex(message, &ifindex);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
log_netdev_error_errno(netdev, r, "Could not get ifindex: %m");
|
log_netdev_error_errno(netdev, r, "Could not get ifindex: %m");
|
||||||
|
Loading…
Reference in New Issue
Block a user