35 lines · plain
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.03# description: Kprobe event user-memory access4# requires: kprobe_events '$arg<N>':README5 6grep -A10 "fetcharg:" README | grep -q 'ustring' || exit_unsupported7grep -A10 "fetcharg:" README | grep -q '\[u\]<offset>' || exit_unsupported8 9:;: "user-memory access syntax and ustring working on user memory";:10echo 'p:myevent do_sys_open path=+0($arg2):ustring path2=+u0($arg2):string' \11 > kprobe_events12echo 'p:myevent2 do_sys_openat2 path=+0($arg2):ustring path2=+u0($arg2):string' \13 >> kprobe_events14 15grep myevent kprobe_events | \16 grep -q 'path=+0($arg2):ustring path2=+u0($arg2):string'17echo 1 > events/kprobes/myevent/enable18echo 1 > events/kprobes/myevent2/enable19echo > /dev/null20echo 0 > events/kprobes/myevent/enable21echo 0 > events/kprobes/myevent2/enable22 23grep myevent trace | grep -q 'path="/dev/null" path2="/dev/null"'24 25:;: "user-memory access syntax and ustring not working with kernel memory";:26echo 'p:myevent vfs_symlink path=+0($arg3):ustring path2=+u0($arg3):string' \27 > kprobe_events28echo 1 > events/kprobes/myevent/enable29ln -s foo $TMPDIR/bar30echo 0 > events/kprobes/myevent/enable31 32grep myevent trace | grep -q 'path=(fault) path2=(fault)'33 34exit 035