Browse Source

kmsg: /dev/kmsg - properly return possible copy_from_user() failure

Reported-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Kay Sievers <kay@vrfy.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Kay Sievers 13 years ago
parent
commit
cdf5344136
1 changed files with 3 additions and 1 deletions
  1. 3 1
      kernel/printk.c

+ 3 - 1
kernel/printk.c

@@ -389,8 +389,10 @@ static ssize_t devkmsg_writev(struct kiocb *iocb, const struct iovec *iv,
 
 
 	line = buf;
 	line = buf;
 	for (i = 0; i < count; i++) {
 	for (i = 0; i < count; i++) {
-		if (copy_from_user(line, iv[i].iov_base, iv[i].iov_len))
+		if (copy_from_user(line, iv[i].iov_base, iv[i].iov_len)) {
+			ret = -EFAULT;
 			goto out;
 			goto out;
+		}
 		line += iv[i].iov_len;
 		line += iv[i].iov_len;
 	}
 	}