libnetlink: don't confuse variables in rtnl_talk()
There is two variables named 'len' in rtnl_talk. In fact, commitc079e121a7didn't work. For example, it was possible to trigger a seg fault with this command: $ ip link set gre2 type ip6gre hoplimit 32 Let's rename the argument len to maxlen. Fixes:c079e121a7("libnetlink: add size argument to rtnl_talk") Reported-by: Thomas Faivre <thomas.faivre@6wind.com> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
This commit is contained in:
parent
0f7543322c
commit
ed108cfc02
|
|
@ -332,7 +332,7 @@ int rtnl_dump_filter_nc(struct rtnl_handle *rth,
|
|||
}
|
||||
|
||||
int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
||||
struct nlmsghdr *answer, size_t len)
|
||||
struct nlmsghdr *answer, size_t maxlen)
|
||||
{
|
||||
int status;
|
||||
unsigned seq;
|
||||
|
|
@ -415,7 +415,7 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
|||
} else if (!err->error) {
|
||||
if (answer)
|
||||
memcpy(answer, h,
|
||||
MIN(len, h->nlmsg_len));
|
||||
MIN(maxlen, h->nlmsg_len));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -427,7 +427,7 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
|||
|
||||
if (answer) {
|
||||
memcpy(answer, h,
|
||||
MIN(len, h->nlmsg_len));
|
||||
MIN(maxlen, h->nlmsg_len));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue