lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20221114154412.0e4ba0a1b93c1f5ebff26446@kernel.org>
Date:   Mon, 14 Nov 2022 15:44:12 +0900
From:   Masami Hiramatsu (Google) <mhiramat@...nel.org>
To:     Rafael Mendonca <rafaelmendsr@...il.com>
Cc:     Steven Rostedt <rostedt@...dmis.org>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] tracing/eprobe: Fix warning in filter creation

On Tue,  8 Nov 2022 17:21:47 -0300
Rafael Mendonca <rafaelmendsr@...il.com> wrote:

> The filter pointer (filterp) passed to create_filter() function must be a
> pointer that references a NULL pointer, otherwise, we get a warning when
> adding a filter option to the event probe:
> 
> root@...alhost:/sys/kernel/tracing# echo 'e:egroup/stat_runtime_4core sched/sched_stat_runtime \
>         runtime=$runtime:u32 if cpu < 4' >> dynamic_events
> [ 5034.340439] ------------[ cut here ]------------
> [ 5034.341258] WARNING: CPU: 0 PID: 223 at kernel/trace/trace_events_filter.c:1939 create_filter+0x1db/0x250
> [...] stripped
> [ 5034.345518] RIP: 0010:create_filter+0x1db/0x250
> [...] stripped
> [ 5034.351604] Call Trace:
> [ 5034.351803]  <TASK>
> [ 5034.351959]  ? process_preds+0x1b40/0x1b40
> [ 5034.352241]  ? rcu_read_lock_bh_held+0xd0/0xd0
> [ 5034.352604]  ? kasan_set_track+0x29/0x40
> [ 5034.352904]  ? kasan_save_alloc_info+0x1f/0x30
> [ 5034.353264]  create_event_filter+0x38/0x50
> [ 5034.353573]  __trace_eprobe_create+0x16f4/0x1d20
> [ 5034.353964]  ? eprobe_dyn_event_release+0x360/0x360
> [ 5034.354363]  ? mark_held_locks+0xa6/0xf0
> [ 5034.354684]  ? _raw_spin_unlock_irqrestore+0x35/0x60
> [ 5034.355105]  ? trace_hardirqs_on+0x41/0x120
> [ 5034.355417]  ? _raw_spin_unlock_irqrestore+0x35/0x60
> [ 5034.355751]  ? __create_object+0x5b7/0xcf0
> [ 5034.356027]  ? lock_is_held_type+0xaf/0x120
> [ 5034.356362]  ? rcu_read_lock_bh_held+0xb0/0xd0
> [ 5034.356716]  ? rcu_read_lock_bh_held+0xd0/0xd0
> [ 5034.357084]  ? kasan_set_track+0x29/0x40
> [ 5034.357411]  ? kasan_save_alloc_info+0x1f/0x30
> [ 5034.357715]  ? __kasan_kmalloc+0xb8/0xc0
> [ 5034.357985]  ? write_comp_data+0x2f/0x90
> [ 5034.358302]  ? __sanitizer_cov_trace_pc+0x25/0x60
> [ 5034.358691]  ? argv_split+0x381/0x460
> [ 5034.358949]  ? write_comp_data+0x2f/0x90
> [ 5034.359240]  ? eprobe_dyn_event_release+0x360/0x360
> [ 5034.359620]  trace_probe_create+0xf6/0x110
> [ 5034.359940]  ? trace_probe_match_command_args+0x240/0x240
> [ 5034.360376]  eprobe_dyn_event_create+0x21/0x30
> [ 5034.360709]  create_dyn_event+0xf3/0x1a0
> [ 5034.360983]  trace_parse_run_command+0x1a9/0x2e0
> [ 5034.361297]  ? dyn_event_release+0x500/0x500
> [ 5034.361591]  dyn_event_write+0x39/0x50
> [ 5034.361851]  vfs_write+0x311/0xe50
> [ 5034.362091]  ? dyn_event_seq_next+0x40/0x40
> [ 5034.362376]  ? kernel_write+0x5b0/0x5b0
> [ 5034.362637]  ? write_comp_data+0x2f/0x90
> [ 5034.362937]  ? __sanitizer_cov_trace_pc+0x25/0x60
> [ 5034.363258]  ? ftrace_syscall_enter+0x544/0x840
> [ 5034.363563]  ? write_comp_data+0x2f/0x90
> [ 5034.363837]  ? __sanitizer_cov_trace_pc+0x25/0x60
> [ 5034.364156]  ? write_comp_data+0x2f/0x90
> [ 5034.364468]  ? write_comp_data+0x2f/0x90
> [ 5034.364770]  ksys_write+0x158/0x2a0
> [ 5034.365022]  ? __ia32_sys_read+0xc0/0xc0
> [ 5034.365344]  __x64_sys_write+0x7c/0xc0
> [ 5034.365669]  ? syscall_enter_from_user_mode+0x53/0x70
> [ 5034.366084]  do_syscall_64+0x60/0x90
> [ 5034.366356]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
> [ 5034.366767] RIP: 0033:0x7ff0b43938f3
> [...] stripped
> [ 5034.371892]  </TASK>
> [ 5034.374720] ---[ end trace 0000000000000000 ]---
> 
> Fixes: 752be5c5c910 ("tracing/eprobe: Add eprobe filter support")
> Signed-off-by: Rafael Mendonca <rafaelmendsr@...il.com>

Acked-by: Masami Hiramatsu (Google) <mhiramat@...nel.org>

Thanks!

> ---
>  kernel/trace/trace_eprobe.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/trace/trace_eprobe.c b/kernel/trace/trace_eprobe.c
> index 5dd0617e5df6..c2153bf59936 100644
> --- a/kernel/trace/trace_eprobe.c
> +++ b/kernel/trace/trace_eprobe.c
> @@ -900,7 +900,7 @@ static int trace_eprobe_tp_update_arg(struct trace_eprobe *ep, const char *argv[
>  
>  static int trace_eprobe_parse_filter(struct trace_eprobe *ep, int argc, const char *argv[])
>  {
> -	struct event_filter *dummy;
> +	struct event_filter *dummy = NULL;
>  	int i, ret, len = 0;
>  	char *p;
>  
> -- 
> 2.34.1
> 


-- 
Masami Hiramatsu (Google) <mhiramat@...nel.org>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ