diff --git a/[refs] b/[refs] index f2a8c3a1c288..f3de15f8a6fc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4a77a5a06ec66ed05199b301e7c25f42f979afdc +refs/heads/master: b56a39ac263e5b8cafedd551a49c2105e68b98c2 diff --git a/trunk/kernel/printk.c b/trunk/kernel/printk.c index 572730bd8a5c..a2276b916769 100644 --- a/trunk/kernel/printk.c +++ b/trunk/kernel/printk.c @@ -880,7 +880,9 @@ static int syslog_print(char __user *buf, int size) syslog_seq++; raw_spin_unlock_irq(&logbuf_lock); - if (len > 0 && copy_to_user(buf, text, len)) + if (len > size) + len = -EINVAL; + else if (len > 0 && copy_to_user(buf, text, len)) len = -EFAULT; kfree(text);