@@ -18,6 +18,7 @@ class HardwareAddress : public YamlObject {
public:
HardwareAddress &operator=(const nlattr *attr) {
+ assert(mnl_attr_validate(attr, MNL_TYPE_BINARY) == 0);
assert(mnl_attr_get_payload_len(attr) == IFHWADDRLEN);
memcpy(this->bytes, mnl_attr_get_payload(attr), IFHWADDRLEN);
return *this;
@@ -17,10 +17,11 @@ int Link::mnl_attr_cb(const nlattr *attr, void *data) {
link->broadcast = attr;
break;
case IFLA_IFNAME:
+ assert(mnl_attr_validate(attr, MNL_TYPE_STRING) == 0);
link->ifname = mnl_attr_get_str(attr);
case IFLA_MTU:
- assert(mnl_attr_get_payload_len(attr) == 4);
+ assert(mnl_attr_validate(attr, MNL_TYPE_U32) == 0);
link->mtu = mnl_attr_get_u32(attr);
case IFLA_OPERSTATE:
@@ -24,7 +24,7 @@ class OperState : public YamlObject {
OperState &operator=(const nlattr *attr) {
- assert(mnl_attr_get_payload_len(attr) == 1);
+ assert(mnl_attr_validate(attr, MNL_TYPE_U8) == 0);
this->state = mnl_attr_get_u8(attr);
}