From 3dabdbb3da5ab7e9df8bf561602d681db26d8982 Mon Sep 17 00:00:00 2001 From: "net[shemminger]!shemminger" Date: Wed, 30 Mar 2005 18:18:12 +0000 Subject: [PATCH] Import patch netlink-align (Logical change 1.179) --- lib/libnetlink.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libnetlink.c b/lib/libnetlink.c index 4cd2b2a1..6ec2509a 100644 --- a/lib/libnetlink.c +++ b/lib/libnetlink.c @@ -491,7 +491,7 @@ int addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, int len = RTA_LENGTH(alen); struct rtattr *rta; - if (NLMSG_ALIGN(n->nlmsg_len) + len > maxlen) { + if (NLMSG_ALIGN(n->nlmsg_len) + RTA_ALIGN(len) > maxlen) { fprintf(stderr, "addattr_l ERROR: message exceeded bound of %d\n",maxlen); return -1; } @@ -499,7 +499,7 @@ int addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data, rta->rta_type = type; rta->rta_len = len; memcpy(RTA_DATA(rta), data, alen); - n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + len; + n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + RTA_ALIGN(len); return 0; } @@ -539,7 +539,7 @@ int rta_addattr_l(struct rtattr *rta, int maxlen, int type, struct rtattr *subrta; int len = RTA_LENGTH(alen); - if (RTA_ALIGN(rta->rta_len) + len > maxlen) { + if (RTA_ALIGN(rta->rta_len) + RTA_ALIGN(len) > maxlen) { fprintf(stderr,"rta_addattr_l: Error! max allowed bound %d exceeded\n",maxlen); return -1; } @@ -547,7 +547,7 @@ int rta_addattr_l(struct rtattr *rta, int maxlen, int type, subrta->rta_type = type; subrta->rta_len = len; memcpy(RTA_DATA(subrta), data, alen); - rta->rta_len = NLMSG_ALIGN(rta->rta_len) + len; + rta->rta_len = NLMSG_ALIGN(rta->rta_len) + RTA_ALIGN(len); return 0; }