diff options
author | Thomas Graf <tgraf@suug.ch> | 2005-11-08 12:39:17 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-11-08 12:39:17 -0500 |
commit | b541ca2c5a3f3f399d6f2ec9da33c1be5a8d8c19 (patch) | |
tree | 4e3596af9d6020820b751829b98fa80029b80499 /net/sched/ematch.c | |
parent | 18a0c23617a2cb1c2e55e650046c2084d823fde0 (diff) |
[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>
Diffstat (limited to 'net/sched/ematch.c')
-rw-r--r-- | net/sched/ematch.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/sched/ematch.c b/net/sched/ematch.c index ebfe2e7d21bd..64b047c65568 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, | |||
298 | struct tcf_ematch_tree_hdr *tree_hdr; | 298 | struct tcf_ematch_tree_hdr *tree_hdr; |
299 | struct tcf_ematch *em; | 299 | struct tcf_ematch *em; |
300 | 300 | ||
301 | if (!rta) { | ||
302 | memset(tree, 0, sizeof(*tree)); | ||
303 | return 0; | ||
304 | } | ||
305 | |||
301 | if (rtattr_parse_nested(tb, TCA_EMATCH_TREE_MAX, rta) < 0) | 306 | if (rtattr_parse_nested(tb, TCA_EMATCH_TREE_MAX, rta) < 0) |
302 | goto errout; | 307 | goto errout; |
303 | 308 | ||