tracing/filters: Don't use pred on alloc failure

Dan Carpenter sent me a fix to prevent pred from being used if
it couldn't be allocated. I noticed the same problem also
existed for the create_pred() case and added a fix for that.

Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Tom Zanussi <tzanussi@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
LKML-Reference: <1249746549.6453.29.camel@tropicana>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

authored by Tom Zanussi and committed by Ingo Molnar 96b2de31 bd3f0221

+4
+4
kernel/trace/trace_events_filter.c
··· 1029 1030 if (elt->op == OP_AND || elt->op == OP_OR) { 1031 pred = create_logical_pred(elt->op); 1032 if (call) { 1033 err = filter_add_pred(ps, call, pred); 1034 filter_free_pred(pred); ··· 1050 } 1051 1052 pred = create_pred(elt->op, operand1, operand2); 1053 if (call) { 1054 err = filter_add_pred(ps, call, pred); 1055 filter_free_pred(pred);
··· 1029 1030 if (elt->op == OP_AND || elt->op == OP_OR) { 1031 pred = create_logical_pred(elt->op); 1032 + if (!pred) 1033 + return -ENOMEM; 1034 if (call) { 1035 err = filter_add_pred(ps, call, pred); 1036 filter_free_pred(pred); ··· 1048 } 1049 1050 pred = create_pred(elt->op, operand1, operand2); 1051 + if (!pred) 1052 + return -ENOMEM; 1053 if (call) { 1054 err = filter_add_pred(ps, call, pred); 1055 filter_free_pred(pred);