mirror of https://gitee.com/openkylin/linux.git
tracing: Make create_filter() code match the comments
The comment in create_filter() states that the passed in filter pointer (filterp) will either be NULL or contain an error message stating why the filter failed. But it also expects the filter pointer to point to NULL when passed in. If it is not, the function create_filter_start() will warn and return an error message without updating the filter pointer. This is not what the comment states. As we always expect the pointer to point to NULL, if it is not, trigger a WARN_ON(), set it to NULL, and then continue the path as the rest will work as the comment states. Also update the comment to state it must point to NULL. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
parent
cf4d418e65
commit
f90658725b
|
@ -1701,6 +1701,7 @@ static void create_filter_finish(struct filter_parse_error *pe)
|
|||
* @filter_str: filter string
|
||||
* @set_str: remember @filter_str and enable detailed error in filter
|
||||
* @filterp: out param for created filter (always updated on return)
|
||||
* Must be a pointer that references a NULL pointer.
|
||||
*
|
||||
* Creates a filter for @call with @filter_str. If @set_str is %true,
|
||||
* @filter_str is copied and recorded in the new filter.
|
||||
|
@ -1718,6 +1719,10 @@ static int create_filter(struct trace_event_call *call,
|
|||
struct filter_parse_error *pe = NULL;
|
||||
int err;
|
||||
|
||||
/* filterp must point to NULL */
|
||||
if (WARN_ON(*filterp))
|
||||
*filterp = NULL;
|
||||
|
||||
err = create_filter_start(filter_string, set_str, &pe, filterp);
|
||||
if (err)
|
||||
return err;
|
||||
|
|
Loading…
Reference in New Issue