summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/attr.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/attr.c b/src/attr.c
index 4f13187..0359ba9 100644
--- a/src/attr.c
+++ b/src/attr.c
@@ -412,10 +412,15 @@ void mnl_attr_put(struct nlmsghdr *nlh, uint16_t type, size_t len,
{
struct nlattr *attr = mnl_nlmsg_get_payload_tail(nlh);
uint16_t payload_len = MNL_ALIGN(sizeof(struct nlattr)) + len;
+ int pad;
attr->nla_type = type;
attr->nla_len = payload_len;
memcpy(mnl_attr_get_payload(attr), data, len);
+ pad = MNL_ALIGN(len) - len;
+ if (pad > 0)
+ memset(mnl_attr_get_payload(attr) + len, 0, pad);
+
nlh->nlmsg_len += MNL_ALIGN(payload_len);
}