summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2005-11-08 09:39:17 -0800
committerDavid S. Miller <davem@davemloft.net>2005-11-08 09:39:17 -0800
commitb541ca2c5a3f3f399d6f2ec9da33c1be5a8d8c19 (patch)
tree4e3596af9d6020820b751829b98fa80029b80499
parent18a0c23617a2cb1c2e55e650046c2084d823fde0 (diff)
downloadlinux-3.10-b541ca2c5a3f3f399d6f2ec9da33c1be5a8d8c19.tar.gz
linux-3.10-b541ca2c5a3f3f399d6f2ec9da33c1be5a8d8c19.tar.bz2
linux-3.10-b541ca2c5a3f3f399d6f2ec9da33c1be5a8d8c19.zip
[PKT_SCHED]: Correctly handle empty ematch trees
Fixes an invalid memory reference when the basic classifier is used without any ematches but just actions. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sched/ematch.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/sched/ematch.c b/net/sched/ematch.c
index ebfe2e7d21b..64b047c6556 100644
--- a/net/sched/ematch.c
+++ b/net/sched/ematch.c
@@ -298,6 +298,11 @@ int tcf_em_tree_validate(struct tcf_proto *tp, struct rtattr *rta,
struct tcf_ematch_tree_hdr *tree_hdr;
struct tcf_ematch *em;
+ if (!rta) {
+ memset(tree, 0, sizeof(*tree));
+ return 0;
+ }
+
if (rtattr_parse_nested(tb, TCA_EMATCH_TREE_MAX, rta) < 0)
goto errout;