net, cls: also reject deleting all filters when TCA_KIND present
authorDaniel Borkmann <daniel@iogearbox.net>
Thu, 16 Jun 2016 21:19:29 +0000 (23:19 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Jun 2016 05:50:16 +0000 (22:50 -0700)
When we check for RTM_DELTFILTER, we should also reject the request
for deleting all filters under a given parent when TCA_KIND attribute
is present. If present, it's currently just ignored but there's also
no point to let it pass in the first place either since this doesn't
have any meaning with wild-card removal.

Fixes: ea7f8277f907 ("net, cls: allow for deleting all filters for given parent")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_api.c

index cca1ef5e5476d35f68f9d021ce69c08320bf9a56..843a716a4303e71cb39c7ad8d95106a6d5c5e872 100644 (file)
@@ -169,7 +169,7 @@ replay:
        if (prio == 0) {
                switch (n->nlmsg_type) {
                case RTM_DELTFILTER:
-                       if (protocol || t->tcm_handle)
+                       if (protocol || t->tcm_handle || tca[TCA_KIND])
                                return -ENOENT;
                        break;
                case RTM_NEWTFILTER: