From 190cefb17d0f2c0c0e7e0b74c76e4cfb0d7b265f Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Tue, 3 Jan 2017 09:06:03 +0100 Subject: [PATCH] PR20333/shmat --- tapset/linux/nd_syscalls2.stp | 19 ------------- tapset/linux/sysc_shmat.stp | 52 +++++++++++++++++++++++++++++++++++ tapset/linux/syscalls2.stp | 18 ------------ 3 files changed, 52 insertions(+), 37 deletions(-) create mode 100644 tapset/linux/sysc_shmat.stp diff --git a/tapset/linux/nd_syscalls2.stp b/tapset/linux/nd_syscalls2.stp index 2c4b276d3..5390636fc 100644 --- a/tapset/linux/nd_syscalls2.stp +++ b/tapset/linux/nd_syscalls2.stp @@ -1,23 +1,4 @@ -# shmat ______________________________________________________ -# -# long sys_shmat(int shmid, char __user *shmaddr, int shmflg) -# -probe nd_syscall.shmat = kprobe.function("sys_shmat") ? -{ - name = "shmat" - asmlinkage() - shmid = int_arg(1) - shmaddr_uaddr = pointer_arg(2) - shmflg = int_arg(3) - argstr = sprintf("%d, %p, %s", shmid, shmaddr_uaddr, _shmat_flags_str(shmflg)) -} -probe nd_syscall.shmat.return = kprobe.function("sys_shmat").return ? -{ - name = "shmat" - retstr = returnstr(1) -} - # compat_sys_shmat ________________________________________ # # long compat_sys_shmat(int first, int second, compat_uptr_t third, diff --git a/tapset/linux/sysc_shmat.stp b/tapset/linux/sysc_shmat.stp new file mode 100644 index 000000000..e9f7988c5 --- /dev/null +++ b/tapset/linux/sysc_shmat.stp @@ -0,0 +1,52 @@ +# shmat ______________________________________________________ +# +# long sys_shmat(int shmid, char __user *shmaddr, int shmflg) +# + +@define _SYSCALL_SHMAT_NAME +%( + name = "shmat" +%) + +@define _SYSCALL_SHMAT_ARGSTR +%( + argstr = sprintf("%d, %p, %s", shmid, shmaddr_uaddr, shmflg_str) +%) + +probe syscall.shmat = dw_syscall.shmat !, nd_syscall.shmat {} +probe syscall.shmat.return = dw_syscall.shmat.return !, nd_syscall.shmat.return {} + +# dw_shmat _____________________________________________________ + +probe dw_syscall.shmat = kernel.function("sys_shmat").call ? +{ + @_SYSCALL_SHMAT_NAME + shmid = $shmid + shmaddr_uaddr = $shmaddr + shmflg = $shmflg + shmflg_str = _shmat_flags_str(shmflg) + @_SYSCALL_SHMAT_ARGSTR +} +probe dw_syscall.shmat.return = kernel.function("sys_shmat").return ? +{ + @_SYSCALL_SHMAT_NAME + retstr = return_str(1, $return) +} + +# nd_shmat _____________________________________________________ + +probe nd_syscall.shmat = kprobe.function("sys_shmat") ? +{ + @_SYSCALL_SHMAT_NAME + asmlinkage() + shmid = int_arg(1) + shmaddr_uaddr = pointer_arg(2) + shmflg = int_arg(3) + shmflg_str = _shmat_flags_str(shmflg) + @_SYSCALL_SHMAT_ARGSTR +} +probe nd_syscall.shmat.return = kprobe.function("sys_shmat").return ? +{ + @_SYSCALL_SHMAT_NAME + retstr = returnstr(1) +} diff --git a/tapset/linux/syscalls2.stp b/tapset/linux/syscalls2.stp index 0b136e364..3b6b08a69 100644 --- a/tapset/linux/syscalls2.stp +++ b/tapset/linux/syscalls2.stp @@ -1,21 +1,3 @@ - -# shmat ______________________________________________________ -# -# long sys_shmat(int shmid, char __user *shmaddr, int shmflg) -# -probe syscall.shmat = kernel.function("sys_shmat").call ? -{ - name = "shmat" - shmid = $shmid - shmaddr_uaddr = $shmaddr - shmflg = $shmflg - argstr = sprintf("%d, %p, %s", $shmid, $shmaddr, _shmat_flags_str($shmflg)) -} -probe syscall.shmat.return = kernel.function("sys_shmat").return ? -{ - name = "shmat" - retstr = return_str(1, $return) -} # compat_sys_shmat ________________________________________ # # long compat_sys_shmat(int first, int second, compat_uptr_t third, -- 2.43.5