Wrong calcultation in nla_reserve
There seams to be an error in the calculation of needed space for the message in nla_reserve. The current size of the message is counted twice: Once in NLMSG_ALIGN, once in the condition below. This causes nla_put_* calls to be rejected if the allocation size of the message has been strictly calculated by the caller. Signed-off-by: Thomas Graf <tgraf@suug.ch>
This commit is contained in:
parent
3a6d256da5
commit
979ea335b0
1 changed files with 1 additions and 1 deletions
|
@ -464,7 +464,7 @@ struct nlattr *nla_reserve(struct nl_msg *msg, int attrtype, int attrlen)
|
|||
|
||||
tlen = NLMSG_ALIGN(msg->nm_nlh->nlmsg_len) + nla_total_size(attrlen);
|
||||
|
||||
if ((tlen + msg->nm_nlh->nlmsg_len) > msg->nm_size)
|
||||
if (tlen > msg->nm_size)
|
||||
return NULL;
|
||||
|
||||
nla = (struct nlattr *) nlmsg_tail(msg->nm_nlh);
|
||||
|
|
Loading…
Add table
Reference in a new issue