diff options
-rw-r--r-- | kernel/trace/trace_events_filter.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c index 9fca8bb1c06b..026be412f356 100644 --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c | |||
@@ -237,9 +237,14 @@ int filter_add_pred(struct ftrace_event_call *call, struct filter_pred *pred) | |||
237 | pred->offset = field->offset; | 237 | pred->offset = field->offset; |
238 | 238 | ||
239 | if (is_string_field(field->type)) { | 239 | if (is_string_field(field->type)) { |
240 | if (!pred->str_val) | ||
241 | return -EINVAL; | ||
240 | pred->fn = filter_pred_string; | 242 | pred->fn = filter_pred_string; |
241 | pred->str_len = field->size; | 243 | pred->str_len = field->size; |
242 | return __filter_add_pred(call, pred); | 244 | return __filter_add_pred(call, pred); |
245 | } else { | ||
246 | if (pred->str_val) | ||
247 | return -EINVAL; | ||
243 | } | 248 | } |
244 | 249 | ||
245 | switch (field->size) { | 250 | switch (field->size) { |