From 4ee0e555ad1bb0fe0abba52ce70b9026e162f696 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Tue, 3 Jan 2017 08:45:15 +0100 Subject: [PATCH] PR20333/setrlimit --- tapset/linux/nd_syscalls2.stp | 34 --------------- tapset/linux/sysc_setrlimit.stp | 77 +++++++++++++++++++++++++++++++++ tapset/linux/syscalls2.stp | 33 -------------- 3 files changed, 77 insertions(+), 67 deletions(-) create mode 100644 tapset/linux/sysc_setrlimit.stp diff --git a/tapset/linux/nd_syscalls2.stp b/tapset/linux/nd_syscalls2.stp index cf72f2236..6cd6bf6ff 100644 --- a/tapset/linux/nd_syscalls2.stp +++ b/tapset/linux/nd_syscalls2.stp @@ -1,38 +1,4 @@ -# setrlimit __________________________________________________ -# -# asmlinkage long -# sys_setrlimit(unsigned int resource, -# struct rlimit __user *rlim) -# asmlinkage long -# compat_sys_setrlimit(unsigned int resource, -# struct compat_rlimit __user *rlim) -# -probe nd_syscall.setrlimit = __nd_syscall.setrlimit ?, - kprobe.function("compat_sys_setrlimit") ? -{ - name = "setrlimit" - asmlinkage() - resource = uint_arg(1) - rlim_uaddr = pointer_arg(2) - argstr = sprintf("%s, %s", _rlimit_resource_str(resource), - _struct_rlimit_u(rlim_uaddr)) -} -probe __nd_syscall.setrlimit = kprobe.function("sys_setrlimit") -{ - @__syscall_gate(@const("__NR_setrlimit")) -} -probe nd_syscall.setrlimit.return = __nd_syscall.setrlimit.return ?, - kprobe.function("compat_sys_setrlimit").return ? -{ - name = "setrlimit" - retstr = returnstr(1) -} -probe __nd_syscall.setrlimit.return = kprobe.function("sys_setrlimit").return -{ - @__syscall_gate(@const("__NR_setrlimit")) -} - # set_robust_list ____________________________________________ # SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head, # size_t, len) diff --git a/tapset/linux/sysc_setrlimit.stp b/tapset/linux/sysc_setrlimit.stp new file mode 100644 index 000000000..a382ecd70 --- /dev/null +++ b/tapset/linux/sysc_setrlimit.stp @@ -0,0 +1,77 @@ +# setrlimit __________________________________________________ +# +# asmlinkage long +# sys_setrlimit(unsigned int resource, +# struct rlimit __user *rlim) +# asmlinkage long +# compat_sys_setrlimit(unsigned int resource, +# struct compat_rlimit __user *rlim) +# + +@define _SYSCALL_SETRLIMIT_NAME +%( + name = "setrlimit" +%) + +@define _SYSCALL_SETRLIMIT_ARGSTR +%( + argstr = sprintf("%s, %s", resource_str, rlim_str) +%) + +probe syscall.setrlimit = dw_syscall.setrlimit !, nd_syscall.setrlimit {} +probe syscall.setrlimit.return = dw_syscall.setrlimit.return !, nd_syscall.setrlimit.return {} + +# dw_setrlimit _____________________________________________________ + +probe dw_syscall.setrlimit = __syscall.setrlimit ?, + kernel.function("compat_sys_setrlimit").call ? +{ + @_SYSCALL_SETRLIMIT_NAME + resource = $resource + resource_str = _rlimit_resource_str(resource) + rlim_uaddr = $rlim + rlim_str = _struct_rlimit_u(rlim_uaddr) + @_SYSCALL_SETRLIMIT_ARGSTR +} +probe __syscall.setrlimit = kernel.function("sys_setrlimit").call +{ + @__syscall_gate(@const("__NR_setrlimit")) +} +probe dw_syscall.setrlimit.return = __syscall.setrlimit.return ?, + kernel.function("compat_sys_setrlimit").return ? +{ + @_SYSCALL_SETRLIMIT_NAME + retstr = return_str(1, $return) +} +probe __syscall.setrlimit.return = kernel.function("sys_setrlimit").return +{ + @__syscall_gate(@const("__NR_setrlimit")) +} + +# nd_setrlimit _____________________________________________________ + +probe nd_syscall.setrlimit = __nd_syscall.setrlimit ?, + kprobe.function("compat_sys_setrlimit") ? +{ + @_SYSCALL_SETRLIMIT_NAME + asmlinkage() + resource = uint_arg(1) + resource_str = _rlimit_resource_str(resource) + rlim_uaddr = pointer_arg(2) + rlim_str = _struct_rlimit_u(rlim_uaddr) + @_SYSCALL_SETRLIMIT_ARGSTR +} +probe __nd_syscall.setrlimit = kprobe.function("sys_setrlimit") +{ + @__syscall_gate(@const("__NR_setrlimit")) +} +probe nd_syscall.setrlimit.return = __nd_syscall.setrlimit.return ?, + kprobe.function("compat_sys_setrlimit").return ? +{ + @_SYSCALL_SETRLIMIT_NAME + retstr = returnstr(1) +} +probe __nd_syscall.setrlimit.return = kprobe.function("sys_setrlimit").return +{ + @__syscall_gate(@const("__NR_setrlimit")) +} diff --git a/tapset/linux/syscalls2.stp b/tapset/linux/syscalls2.stp index eac7601fb..d6212301d 100644 --- a/tapset/linux/syscalls2.stp +++ b/tapset/linux/syscalls2.stp @@ -1,37 +1,4 @@ -# setrlimit __________________________________________________ -# -# asmlinkage long -# sys_setrlimit(unsigned int resource, -# struct rlimit __user *rlim) -# asmlinkage long -# compat_sys_setrlimit(unsigned int resource, -# struct compat_rlimit __user *rlim) -# -probe syscall.setrlimit = __syscall.setrlimit ?, - kernel.function("compat_sys_setrlimit").call ? -{ - name = "setrlimit" - resource = $resource - rlim_uaddr = $rlim - argstr = sprintf("%s, %s", _rlimit_resource_str($resource), - _struct_rlimit_u($rlim)) -} -probe __syscall.setrlimit = kernel.function("sys_setrlimit").call -{ - @__syscall_gate(@const("__NR_setrlimit")) -} -probe syscall.setrlimit.return = __syscall.setrlimit.return ?, - kernel.function("compat_sys_setrlimit").return ? -{ - name = "setrlimit" - retstr = return_str(1, $return) -} -probe __syscall.setrlimit.return = kernel.function("sys_setrlimit").return -{ - @__syscall_gate(@const("__NR_setrlimit")) -} - # set_robust_list ____________________________________________ # SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head, # size_t, len) -- 2.43.5