From: Arve Hjønnevåg Date: Tue, 15 Apr 2008 04:35:25 +0000 (-0700) Subject: printk: Fix log_buf_copy termination. X-Git-Tag: firefly_0821_release~11680 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8a3025c963926f1cc36b15f6b95b9da0c1ab1cdf;p=firefly-linux-kernel-4.4.55.git printk: Fix log_buf_copy termination. If idx was non-zero and the log had wrapped, len did not get truncated to stop at the last byte written to the log. --- diff --git a/kernel/printk.c b/kernel/printk.c index 448fdc68c8df..a2c0a05d4a85 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -285,8 +285,8 @@ int log_buf_copy(char *dest, int idx, int len) if (idx < 0 || idx >= max) { ret = -1; } else { - if (len > max) - len = max; + if (len > max - idx) + len = max - idx; ret = len; idx += (log_end - max); while (len-- > 0)