projects
/
platform
/
kernel
/
linux-3.10.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
ab1ecba
)
[PKT_SCHED] ematch: oops from uninitialized variable (resend)
author
Stephen Hemminger
<shemminger@vyatta.com>
Sat, 9 Feb 2008 11:47:19 +0000
(
03:47
-0800)
committer
David S. Miller
<davem@davemloft.net>
Sat, 9 Feb 2008 11:47:19 +0000
(
03:47
-0800)
Setting up a meta match causes a kernel OOPS because of uninitialized
elements in tree.
[ 37.322381] BUG: unable to handle kernel NULL pointer dereference at
0000000000000000
[ 37.322381] IP: [<
ffffffff883fc717
>] :em_meta:em_meta_destroy+0x17/0x80
[ 37.322381] Call Trace:
[ 37.322381] [<
ffffffff803ec83d
>] tcf_em_tree_destroy+0x2d/0xa0
[ 37.322381] [<
ffffffff803ecc8c
>] tcf_em_tree_validate+0x2dc/0x4a0
[ 37.322381] [<
ffffffff803f06d2
>] nla_parse+0x92/0xe0
[ 37.322381] [<
ffffffff883f9672
>] :cls_basic:basic_change+0x202/0x3c0
[ 37.322381] [<
ffffffff802a3917
>] kmem_cache_alloc+0x67/0xa0
[ 37.322381] [<
ffffffff803ea221
>] tc_ctl_tfilter+0x3b1/0x580
[ 37.322381] [<
ffffffff803dffd0
>] rtnetlink_rcv_msg+0x0/0x260
[ 37.322381] [<
ffffffff803ee944
>] netlink_rcv_skb+0x74/0xa0
[ 37.322381] [<
ffffffff803dffc8
>] rtnetlink_rcv+0x18/0x20
[ 37.322381] [<
ffffffff803ee6c3
>] netlink_unicast+0x263/0x290
[ 37.322381] [<
ffffffff803cf276
>] __alloc_skb+0x96/0x160
[ 37.322381] [<
ffffffff803ef014
>] netlink_sendmsg+0x274/0x340
[ 37.322381] [<
ffffffff803c7c3b
>] sock_sendmsg+0x12b/0x140
[ 37.322381] [<
ffffffff8024de90
>] autoremove_wake_function+0x0/0x30
[ 37.322381] [<
ffffffff8024de90
>] autoremove_wake_function+0x0/0x30
[ 37.322381] [<
ffffffff803c7c3b
>] sock_sendmsg+0x12b/0x140
[ 37.322381] [<
ffffffff80288611
>] zone_statistics+0xb1/0xc0
[ 37.322381] [<
ffffffff803c7e5e
>] sys_sendmsg+0x20e/0x360
[ 37.322381] [<
ffffffff803c7411
>] sockfd_lookup_light+0x41/0x80
[ 37.322381] [<
ffffffff8028d04b
>] handle_mm_fault+0x3eb/0x7f0
[ 37.322381] [<
ffffffff8020c2fb
>] system_call_after_swapgs+0x7b/0x80
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/ematch.c
patch
|
blob
|
history
diff --git
a/net/sched/ematch.c
b/net/sched/ematch.c
index
74ff918
..
d421ec7
100644
(file)
--- a/
net/sched/ematch.c
+++ b/
net/sched/ematch.c
@@
-312,10
+312,9
@@
int tcf_em_tree_validate(struct tcf_proto *tp, struct nlattr *nla,
struct tcf_ematch_tree_hdr *tree_hdr;
struct tcf_ematch *em;
- if (!nla) {
- memset(tree, 0, sizeof(*tree));
+ memset(tree, 0, sizeof(*tree));
+ if (!nla)
return 0;
- }
err = nla_parse_nested(tb, TCA_EMATCH_TREE_MAX, nla, em_policy);
if (err < 0)