The IFLA_XDP_ATTACHED nested attribute is meant for read-only, and while
do_setlink properly ignores it, it should be more paranoid and reject
commands that try to set it.

Signed-off-by: Brenden Blanco <bbla...@plumgrid.com>
---
 net/core/rtnetlink.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index eba2b82..189cc78 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -2109,6 +2109,10 @@ static int do_setlink(const struct sk_buff *skb,
                if (err < 0)
                        goto errout;
 
+               if (xdp[IFLA_XDP_ATTACHED]) {
+                       err = -EINVAL;
+                       goto errout;
+               }
                if (xdp[IFLA_XDP_FD]) {
                        err = dev_change_xdp_fd(dev,
                                                nla_get_s32(xdp[IFLA_XDP_FD]));
-- 
2.8.2

Reply via email to