]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
tracing/uprobes: Fix to return -EFAULT if copy_from_user failed
authorMasami Hiramatsu <mhiramat@kernel.org>
Tue, 28 Aug 2018 16:17:47 +0000 (01:17 +0900)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Thu, 11 Oct 2018 02:19:11 +0000 (22:19 -0400)
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>
kernel/trace/trace_uprobe.c

index 394b935725067a87a6e81b1e214872c051885556..31ea48eceda184ed5e807f9fe22394f831980982 100644 (file)
@@ -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