return 0;
}
-static bool get_long(struct task_struct *task,
- unsigned long vaddr, unsigned long *val)
-{
- return sizeof(*val) != read_proc_vm_atomic(task, vaddr,
- val, sizeof(*val));
-}
-
-static bool put_long(struct task_struct *task,
- unsigned long vaddr, unsigned long *val)
-{
- return sizeof(*val) != write_proc_vm_atomic(task, vaddr,
- val, sizeof(*val));
-}
-
/**
* @brief Disarms uretprobe on x86 arch.
*
else
tramp_addr = tr; /* ri - invalid */
- if (get_long(task, sp, &ret_addr)) {
+ if (get_user(ret_addr, (unsigned long *)sp)) {
printk(KERN_INFO "---> %s (%d/%d): failed to read stack from %08lx\n",
task->comm, task->tgid, task->pid, sp);
return -EFAULT;
}
if (tramp_addr == ret_addr) {
- if (put_long(task, sp, (unsigned long *)&ri->ret_addr)) {
+ if (put_user((unsigned long)ri->ret_addr, (unsigned long *)sp)) {
printk(KERN_INFO "---> %s (%d/%d): failed to write "
"orig_ret_addr to %08lx",
task->comm, task->tgid, task->pid, sp);