summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorMasami Hiramatsu <mhiramat@kernel.org>2018-08-28 18:17:47 +0200
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2018-10-11 04:19:11 +0200
commitf3f58935edbcb33fd529fc46d554162a0660fd2d (patch)
tree2ab53025647ecc7505e021f60fa646a83dcdccee /kernel
parenttracing: probeevent: Add $argN for accessing function args (diff)
downloadlinux-f3f58935edbcb33fd529fc46d554162a0660fd2d.tar.xz
linux-f3f58935edbcb33fd529fc46d554162a0660fd2d.zip
tracing/uprobes: Fix to return -EFAULT if copy_from_user failed
Fix probe_mem_read() to return -EFAULT if copy_from_user() failed. The copy_from_user() returns remaining bytes when it failed, but probe_mem_read() caller expects it returns error code like as probe_kernel_read(). Link: http://lkml.kernel.org/r/153547306719.26502.8353484532699160223.stgit@devbox Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace_uprobe.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index 394b93572506..31ea48eceda1 100644
--- a/kernel/trace/trace_uprobe.c
+++ b/kernel/trace/trace_uprobe.c
@@ -105,7 +105,7 @@ probe_mem_read(void *dest, void *src, size_t size)
{
void __user *vaddr = (void __force __user *)src;
- return copy_from_user(dest, vaddr, size);
+ return copy_from_user(dest, vaddr, size) ? -EFAULT : 0;
}
/*
* Fetch a null-terminated string. Caller MUST set *(u32 *)dest with max