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]
Date:   Wed, 4 Mar 2020 15:49:37 -0600
From:   Seth Forshee <seth.forshee@...onical.com>
To:     Steven Rostedt <rostedt@...dmis.org>
Cc:     Ingo Molnar <mingo@...hat.com>, Shuah Khan <shuah@...nel.org>,
        linux-kselftest@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] selftests/ftrace: Use printf instead of echo in kprobe
 syntax error tests

On Wed, Mar 04, 2020 at 03:50:04PM -0500, Steven Rostedt wrote:
> On Wed,  4 Mar 2020 10:14:35 -0600
> Seth Forshee <seth.forshee@...onical.com> wrote:
> 
> > --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc
> > +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc
> > @@ -37,7 +37,7 @@ fi
> >  
> >  check_error 'p vfs_read ^$none_var'	# BAD_VAR
> >  
> > -check_error 'p vfs_read ^%none_reg'	# BAD_REG_NAME
> > +check_error 'p vfs_read ^%%none_reg'	# BAD_REG_NAME
> >  check_error 'p vfs_read ^@...45678abcde'	# BAD_MEM_ADDR
> >  check_error 'p vfs_read ^@...'		# FILE_ON_KPROBE
> >  
> > @@ -80,7 +80,7 @@ check_error 'p vfs_read arg1=^'			# NO_ARG_BODY
> >  # instruction boundary check is valid on x86 (at this moment)
> >  case $(uname -m) in
> >    x86_64|i[3456]86)
> > -    echo 'p vfs_read' > kprobe_events
> > +    printf 'p vfs_read' > kprobe_events
> >      if grep -q FTRACE ../kprobes/list ; then
> >  	check_error 'p ^vfs_read+3'		# BAD_INSN_BNDRY (only if function-tracer is enabled)
> >      fi
> > @@ -89,13 +89,13 @@ esac
> >  
> >  # multiprobe errors
> >  if grep -q "Create/append/" README && grep -q "imm-value" README; then
> > -echo 'p:kprobes/testevent _do_fork' > kprobe_events
> > +printf 'p:kprobes/testevent _do_fork' > kprobe_events
> >  check_error '^r:kprobes/testevent do_exit'	# DIFF_PROBE_TYPE
> > -echo 'p:kprobes/testevent _do_fork abcd=\1' > kprobe_events
> > -check_error 'p:kprobes/testevent _do_fork ^bcd=\1'	# DIFF_ARG_TYPE
> > -check_error 'p:kprobes/testevent _do_fork ^abcd=\1:u8'	# DIFF_ARG_TYPE
> > -check_error 'p:kprobes/testevent _do_fork ^abcd=\"foo"'	# DIFF_ARG_TYPE
> > -check_error '^p:kprobes/testevent _do_fork abcd=\1'	# SAME_PROBE
> > +printf 'p:kprobes/testevent _do_fork abcd=\\1' > kprobe_events
> > +check_error 'p:kprobes/testevent _do_fork ^bcd=\\1'	# DIFF_ARG_TYPE
> > +check_error 'p:kprobes/testevent _do_fork ^abcd=\\1:u8'	# DIFF_ARG_TYPE
> > +check_error 'p:kprobes/testevent _do_fork ^abcd=\\"foo"'# DIFF_ARG_TYPE
> > +check_error '^p:kprobes/testevent _do_fork abcd=\\1'	# SAME_PROBE
> >  fi
> >  
> >  exit 0
> 
> 
> This change causes my tests to fail:
> 
> ++ echo 'Test command: p vfs_read arg1="abcd'
> Test command: p vfs_read arg1="abcd
> ++ echo
> ++ grep 'trace_kprobe: error:' -A 3 error_log
> [61913.240093] trace_kprobe: error: Invalid fetch argument
>   Command: p vfs_read arg1="abcd
>                            ^
> +++ tail -n 1 error_log
> +++ wc -c
> ++ N=29
> +++ expr 13 + 21
> ++ test 34 -eq 29

Ah, I did miss a couple of backslashes that need to be escaped there.
The test passes for me without it though, so mabye printf behavior is
less consistent than I thought.

I'll send a v2, hopefully it will work better for you.

Seth

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ