mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-28 18:00:10 +01:00
platform/netlink: mark nested netlink attribute with NLA_F_NESTED
Kernel 5.2 is adding stricter checking for netlink messages.
In particular, for certain API it checks now that NLA_F_NESTED flag is
set for nested attributes ([1]).
Note that libnl3 does not ever set this flag, and since our netlink
implementation is copied from there, certain netlink messages are now
rejected as invalid.
On the other hand, libmnl always adds this flag ([2]). So we should do that
as well.
In particular, this affects the WireGuard netlink API causing request
from NetworkManager to be rejected ([3]).
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b424e432e770d6dd572765459d5b6a96a19c5286
[2] https://git.netfilter.org/libmnl/tree/src/attr.c?id=5937dfcb0185f5cb9cf275992ea701ec4e619d9c#n535
[3] https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/212
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/210
(cherry picked from commit 7811d1c187)
This commit is contained in:
parent
64ed96fb5f
commit
57048338ee
1 changed files with 1 additions and 1 deletions
|
|
@ -510,7 +510,7 @@ nla_nest_start (struct nl_msg *msg, int attrtype)
|
|||
{
|
||||
struct nlattr *start = (struct nlattr *) nlmsg_tail (msg->nm_nlh);
|
||||
|
||||
if (nla_put (msg, attrtype, 0, NULL) < 0)
|
||||
if (nla_put (msg, NLA_F_NESTED | attrtype, 0, NULL) < 0)
|
||||
return NULL;
|
||||
|
||||
return start;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue